QOTD:Java线程与Java堆空间

探讨了Java中线程创建与Java堆空间之间的关系,解释为何增加-Xmx参数设置的堆大小并不能提升线程数量,涉及32位与64位JVM的区别,以及操作系统对线程容量的影响。

以下问题很常见,并且与OutOfMemoryError有关在JVM线程创建过程和JVM线程容量期间无法创建新的本机线程问题。 这也是我向新技术候选人(高级职位)提出的典型面试问题。 我建议您在查看答案之前尝试提供自己的答复。

题:

为什么不能通过-Xmx扩展Java堆空间容量来增加JVM线程容量(线程总数)?

回答:

Java线程创建过程要求本机内存可用于JVM进程。 通过–Xmx参数扩展Java堆空间实际上会减少 Java线程的容量,因为该内存将从本地内存空间“窃取”。

  • 对于32位JVM,Java堆空间与本机堆处于竞争状态,包括线程容量
  • 对于64位JVM,线程容量将主要取决于您的操作系统物理和虚拟内存的可用性以及当前与操作系统进程相关的调整参数。

为了更好地理解此限制,我现在向您建议以下视频教程。 您还可以从下面的链接下载示例Java程序:

https://docs.google.com/file/d/0B6UjfNcYT7yGazg5aWxCWGtvbm8/edit


参考: QOTD:来自Java EE支持模式和Java教程博客的JCG合作伙伴 Pierre-Hugues Charbonneau的Java Thread vs. Java Heap Space

翻译自: https://www.javacodegeeks.com/2013/01/qotd-java-thread-vs-java-heap-space.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值