2012-04-05 4 views
0

JVM은 처음에는 하나의 프로세스 만 생성하므로이 프로세스에서 여러 스레드를 작성하면 CPU가 여러 개 있다고 가정 할 때 CPU 성능이 향상됩니까? 이것은 동일한 프로세스 내의 모든 스레드가 프로세스의 리소스를 공유하기 때문입니다. 그럼 기술적으로 실행은 순차적입니까?다중 스레드가있는 Java 단일 프로세스

즉, 두 개 이상의 프로세스를 만들고 각각에 스레드를 연결하지 않으면 여러 CPU 프로세서에서 병렬 실행의 이점을 얻을 수 없습니다.

+0

CPU 성능 또는 사용량을 의미합니까? –

+3

http://stackoverflow.com/questions/1649402/would-a-multithreaded-java-application-exploit-a-multi-core-machine-very-well을 보셨습니까? – claesv

+0

CPU 사용량을 의미합니다. – ajithganesan

답변

1

예, 여러 스레드로 작업 부하를 분산하면 프로그램 성능이 향상 될 수 있습니다. 또한 응답 성이 향상됩니다.

그러나 통신 및 동기화로 인해 오버 헤드가 증가합니다. 또한 모든 알고리즘을 병렬 처리 할 수있는 것은 아닙니다.

+0

+1 : 좋은 답변입니다. –

관련 문제