2012-04-05 58 views
0

由於JVM最初只創建一個進程,因此假設您有多個CPU處理器,在此進程中創建多個線程會提升CPU性能嗎?這是因爲同一進程內的所有線程共享進程的資源。那麼,從技術上講執行是連續的?具有多線程的Java單進程

換句話說,除非您創建兩個或多個進程並將線程關聯到它們中的每一個,否則無法在多CPU處理器中利用並行執行的全部好處?

+0

你是指CPU性能還是使用率? – 2012-04-05 08:55:14

+3

你看過http://stackoverflow.com/questions/1649402/would-a-multithreaded-java-application-exploit-a-multi-core-machine-very-well? – claesv 2012-04-05 08:57:11

+0

我的意思是CPU使用率。 – ajithganesan 2012-04-05 09:02:04

回答

1

是的,在多個線程上分配工作負載可以提高程序的性能。它也增加了響應性。

但是,由於通信和同步而導致開銷增加。而且,並非所有算法都能夠並行化。

+0

+1:很好的答案。 – 2012-04-05 12:05:29