亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

一個JavaVM可以支持多少個線程?

一個JavaVM可以支持多少個線程?

Helenr 2019-06-29 17:27:30
一個JavaVM可以支持多少個線程?一個JavaVM可以支持多少個線程?這是否因供應商而異?通過操作系統?其他因素?
查看完整描述

3 回答

?
慕尼黑5688855

TA貢獻1848條經驗 獲得超2個贊

這取決于您正在使用的CPU、操作系統、其他進程正在執行的操作、您使用的Java版本以及其他因素。我見過Windows服務器有>6500線程,然后才把機器打開。當然,大多數線程沒有做任何事情。一旦機器命中了大約6500個線程(在Java中),整個機器就開始出現問題并變得不穩定。

我的經驗表明,Java(最近的版本)可以愉快地消耗盡可能多的線程,就像計算機本身能夠在沒有問題的情況下運行一樣。

當然,您必須擁有足夠的RAM,并且必須使用足夠的內存啟動Java,以完成線程所做的一切,并為每個線程創建一個堆棧。任何具有現代cpu(最近幾代AMD或Intel)并有1-2千兆內存(取決于操作系統)的機器都可以很容易地支持jvm絲線。

如果你需要一個比這更具體的答案,你最好的選擇就是分析。


查看完整回答
反對 回復 2019-06-29
?
茅侃侃

TA貢獻1842條經驗 獲得超22個贊

在閱讀了CharlieMartin的文章之后,我很好奇堆大小是否會對您可以創建的線程數量產生任何影響,我對結果感到十分困惑。

在Vista Home PremiumSP1上使用JDK 1.6.0_11,我執行Charlie的測試應用程序,其堆大小在2MB到1024 MB之間。

例如,為了創建一個2MB的堆,我使用參數Xms2m-Xmx2m調用JVM。

以下是我的研究結果:

2 mb --> 5744 threads4 mb --> 5743 threads8 mb --> 5735 threads12 mb --> 5724 threads16 mb --> 5712 threads24 mb --> 5687 threads32 mb --> 5662 threads48 mb --> 5610 threads64 mb --> 5561 threads96 mb --> 5457 threads128 mb --> 5357 threads192 mb --> 5190 threads256 mb --> 5014 threads384 mb --> 4606 threads512 mb --> 4202 threads768 mb --> 3388 threads1024 mb --> 2583 threads

所以,是的,堆的大小肯定很重要。但是堆大小和最大線程數之間的關系是成反比的。

這很奇怪。


查看完整回答
反對 回復 2019-06-29
  • 3 回答
  • 0 關注
  • 614 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號