操作系统分配给每个进程的内存是有限制的,例如32位的Windows限制为2GB。虚拟机提供了参数来控制java堆和方法区(非堆)这两部分内存的最大值。则剩余的内存为2GB(操作系统限制)减去Xmx(最大堆容量)再减去MaxPermSize(最大方法区容量),程序计数器消耗内存很小可以忽略,剩下的内存就由虚拟机栈和本地方法栈瓜分了。所以,每个线程分配到的栈容量越大,可以建立的线程数自然就越少,建立线程时越容易把剩下的内存耗尽(摘自--深入理解java虚拟机2章)
转载于:.html
本文发布于:2024-01-29 04:16:21,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170647299012630.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |