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

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

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

相关推荐

02-07 10:52
复旦大学 Java
混子不想混:非常能理解,感觉他们就靠着入行早,打压新人一样。我这个公司也是,天天干的累死累活,然后绩效打C,合着让新人被绩效,像是年底攒棺材本一样。总是打击之后,还会让人开始自我怀疑,是不是我努力的还不够,实际上并不是,就是他们不做人,故意打压新人。
点赞 评论 收藏
分享
2025-12-26 10:52
河北传媒学院 Java
点赞 评论 收藏
分享
评论
点赞
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务