日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

來源 | jb51.net/article/49087.htm

McGovernTheory在StackOverflow提了這樣一個問題: JAVA虛擬機最多支持多少個線程?跟虛擬機開發商有關么?跟操作系統呢?還有其他的因素嗎?

Eddie的回答:

這取決于你使用的CPU,操作系統,其他進程正在做的事情,你使用的Java的版本,還有其他的因素。我曾經見過一臺windows服務器在宕機之前有超過6500個線程。當然,大多數線程什么事情也沒有做。一旦一臺機器上有差不多6500個線程(Java里面),機器就會開始出問題,并變得不穩定。

以我的經驗來看,JVM容納的線程與計算機本身性能是正相關的。

當然了,你要有足夠的本機內存,并且給Java分配了足夠的內存,讓每個線程都可以擁有棧(虛擬機棧),可以做任何想做的事情。任何一臺擁有現代CPU(AMD或者是Intel最近的幾代)和1-2G內存(取決于操作系統)的機器很容易就可以支持有上千個線程的Java虛擬機。

如果你需要一個更精確的答案,最好是自己做壓測。

Charlie Martin的回答:

這里有很多的參數(可以設置)。對于特定的虛擬機,都會有自己的運行時參數。(最大線程數)一定程度上由操作系統決定的:底層的操作系統要給線程提供哪些支持?施加哪些限制?虛擬機使用的是原生的操作系統的線程還是red thread或者green thread?

操作系統提供的支持是另一個問題。如果你向下面這樣寫Java程序:

Java虛擬機最多支持多少個線程的探討

 

不要抱怨語法細節,這才剛剛開始,那你當然希望能得到成百上千個運行的線程。但是,創建一個線程的成本是相對較大的,(過多線程)調度的開銷會變得突出。能否讓這些線程做有用的事情還不確定。

升級版

好了,迫不及待了!下面是我的一個加了點潤色的小的測試程序:

Java虛擬機最多支持多少個線程的探討

 

在Intel的OS/X 10.5.6系統上,Java 5的輸出如下:

Java虛擬機最多支持多少個線程的探討

 

benjismith的回答:

讀了Charlie Martin的回復以后,我很想知道堆內存的大小是否能夠給創建的線程數帶來不同,然后我就被結果驚呆了:在Vista Home Premium SP1系統上,使用JDK 1.6.0_11,設置堆內存的大小從2M到1024M來執行Charlie的測試程序。比如:創建2M的堆內存,我使用的虛擬機參數是:-Xms2m -Xmx2m.

下面是我的測試結果:

Java虛擬機最多支持多少個線程的探討

 

所以,堆的大小確實很重要。但是,堆大小和最大線程數卻是呈反比例關系。

這太詭異了!

Neil Coffey的回答:

絕對理論上的最大線程數是進程的用戶地址空間除以線程棧的大小(現實中,如果內存全部給線程棧使用,就不會有能運行的程序了)。因此,以32位Windows系統為例,每一個進程的用戶地址空間是2G,假如每個線程棧的大小是128K,最多會有16384(=210241024 / 128)個線程。實際在XP系統上,我發現大約能啟動13000個線程。

然后,我認為,你的問題本質上是:

(a) 你是否可以在你的代碼中有效的管理許多的線程,不讓他們做很顯然是愚蠢的事情,比如:讓他們在同一個object對象上等待隨后被調用notifyAll()...

(b) 操作系統是否可以有效地管理這許多線程。

基本上來說,如果(a)的答案是”yes”的話,(b)的答案也是”yes”。

很巧的是,你可以在Thread的構造函數中設置線程棧的大小,但是,你不需要也不應該把這個和虛擬機參數弄混淆。

分享到:
標簽:虛擬機 Java
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定