JVM的线程占用了哪部分内存,为什么线程太多会OOM?

错误是这个,无法创建本地线程
java.lang.OutOfMemoryError: unable to create new native thread

那么除了堆空间之外,线程还占用了哪部分内存呢?
是哪部分溢出了呢?堆 栈 本地栈 常量池 PC 方法区 直接内存,还是其它?
#Java##春招#
全部评论
线程拥有自己的私有内存 从深入理解虚拟机书中可知 JDK1.7中的线程私有内存包括JAVA虚拟机栈,本地方法栈以及程序计数器,每当你创建一个新的线程那么它就拥有这一部分的空间 而系统分配给每个进程的内存是有限的,当创建的线程数过多,就会导致内存溢出
1 回复 分享
发布于 2019-04-04 18:02
减小堆内存,减小每个线程栈大小,就能最大程度增加创建的线程数
1 回复 分享
发布于 2019-04-04 20:16

相关推荐

点赞 3 评论
分享
牛客网
牛客企业服务