我最近有機會聽取關於JVM的另一個討論。據稱,Java虛擬機在併發性方面做得很好。我找不到任何令人滿意的答案來解釋我認爲的一個簡單問題:當JVM運行多線程(因此使用多個虛擬內核,對嗎?)它是否利用了機器CPU的多個實際內核?JVM中的多個線程 - 它們何時使用多個內核?
我聽到「不總是」或「有時」作爲答案;那麼有什麼辦法可以確保當我們設計我們的代碼來運行多個線程時,JVM也會使用CPU的多個內核?或者換句話說,是什麼決定了JVM是否使用多核CPU核心呢?
我沒有真正能夠舉出一個什麼時候這是必要的例子,但我覺得它很有趣,因爲我知道設計師更喜歡在項目中確定所有東西。如果實際上它們永遠不會被並行計算,那麼在某些大型應用程序中有多個線程會有什麼意義呢?
在這種情況下,JVM的每個線程的優先級是否與JVM本身的優先級相同? – 3yakuya
@Byakuya你可以使用setPriority()來設置各個Java線程的優先級。這實際上意味着什麼取決於JVM和操作系統。 – pburka