QOTD:Java线程与Java堆空间
以下問題很常見,并且與OutOfMemoryError有關(guān):在JVM線程創(chuàng)建過程和JVM線程容量期間無法創(chuàng)建新的本機(jī)線程問題。 這也是我向新技術(shù)候選人(高級(jí)職位)提出的典型面試問題。 我建議您在查看答案之前嘗試提供自己的答復(fù)。
題:
為什么不能通過-Xmx擴(kuò)展Java堆空間容量來增加JVM線程容量(線程總數(shù))?
回答:
Java線程創(chuàng)建過程要求本機(jī)內(nèi)存可用于JVM進(jìn)程。 通過–Xmx參數(shù)擴(kuò)展Java堆空間實(shí)際上會(huì)減少 Java線程的容量,因?yàn)樵搩?nèi)存將從本地內(nèi)存空間“竊取”。
- 對(duì)于32位JVM,Java堆空間與本機(jī)堆處于競(jìng)爭(zhēng)狀態(tài),包括線程容量
- 對(duì)于64位JVM,線程容量將主要取決于您的操作系統(tǒng)物理和虛擬內(nèi)存的可用性以及當(dāng)前與操作系統(tǒng)進(jìn)程相關(guān)的調(diào)整參數(shù)。
為了更好地理解此限制,我現(xiàn)在向您建議以下視頻教程。 您還可以從下面的鏈接下載示例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
總結(jié)
以上是生活随笔為你收集整理的QOTD:Java线程与Java堆空间的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 具有可执行Tomcat的独立Web应用程
- 下一篇: 带有自定义注释的Java注释教程