2016-01-18 562 views
1

多核心處理器上的Java線程是否並行運行,即,同時運行多個線程多CPU核心中的Java多線程

[與Java線程並行處理]當你想阻止你的資源由螺紋爲緩存

多個線程可以單CPU上運行(雖然,一次一個

+0

此外,即使在單個CPU上,I/O等待也會阻塞很多線程,因此即使沒有JVM(或操作系統)的預先調度,也可以擁有多個線程。 – Thilo

+0

可能的重複[在Java中「volatile」的含義是什麼?](http://stackoverflow.com/questions/4885570/what-does-volatile-mean-in-java) –

+2

不要改變整個問題,飛行。首先,你問的是易變修飾符,現在你已經完全從你的問題中刪除了該部分,即使你已經有了它的答案。你的問題是:「在單核心處理器中volatile如何有用,而volatile的主要目的是將每個cpu緩存值清空到內存中」 –

回答

3

波動是非常有用的)並且可以共享資源,所以揮發性仍然有用。

2

JVM不決定要使用的處理器數量。這是OS的工作。 JVM具有創建多個線程並提交它們的功能。

易失性用於保證在併發期間不會從CPU高速緩存中提取數據。

0

首先是JVM產生線程,但它是JVM依賴的硬件。如果它具有多核,JVM可以同時運行多個線程來提取最大性能。

現在談到用戶(您)決定要利用CPU資源的程度,並且通過線程池來完成(通過定義最大線程數可以並行運行),但是您又一次陷入困境與您的硬件配置。