2017-02-23 56 views
2

我知道我們可以使用Java中的並行流或線程輕鬆使用所有可用的CPU內核。但是,假設我的桌面有兩個物理 CPU(是的,我的意思是CPU不是內核),那麼JVM就會同時使用它們(考慮到它們當然是可用的),就像它與CPU一樣核心?多CPU編程

謝謝!

+0

請再次閱讀我的問題,我正在談論多CPU而不是多核。 – FelipeKunzler

+0

你在說什麼JVM? – weston

+0

沒有具體的,這是可能的,這取決於JVM? – FelipeKunzler

回答

4

JVM是隻是一個規範是:

...省略實現細節是沒有必要確保互操作性:運行時數據區的內存佈局,使用的垃圾收集算法,以及Java虛擬機指令的任何內部優化(它們轉換爲機器代碼)

這將是另一個實現細節,它是如何使用物理硬件的。我可以編寫自己的JVM實現,只使用一個CPU,或者我可以編寫一個使用多個CPU的JVM實現。除此之外,我會想象所有的商業JVM都以與多核心完全相同的方式來看待多個CPU,因爲它們通常運行在操作系統之上,這些操作系統也抽象出有關CPU和核心(包括虛擬核心)的硬件細節,並將它們全部作爲CPU呈現給在該OS之上運行的軟件。