2012-04-05 59 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