Java
하나의 JVM 은 멀티 core 를 사용할 수 있는가?
무대포 개발자
2020. 11. 6. 17:33
728x90
반응형
하나의 JVM 은 멀티 core 를 사용할 수 있는가?
- JVM 은 하나의 프로세스에서 동작하는 것이 맞다.
- 해당 JVM 에서 스레드를 생성해 사용할 때는 OS 의 스레드를 사용함.
- OS 는 OS 스레드를 스케줄링하는 책임이 있다.
- 이 OS 의 스레드는 다른 multi core 에 있으며, 결국 하나의 JVM 에서 멀티 코어를 사용할 수 있다.
1개 프로세스 멀티 쓰레드 vs 멀티 프로세스 정리
- 1개의 프로세스 멀티 쓰레드가 이론적으로 더 속도가 나올 것이라 생각되지만 막상 벤치마킹 하면 속도차이가 얼마 안난다.
- 스레드 간 문맥교환이 프로세스 간 문맥교환 보다 적은 비용이지만 실제 성능은 비슷하다.
- 멀티 쓰레드는 사용하기 어렵다. 스레드 간 자원 공유를 고려하며, 프로그래밍 해야하기 때문
- 배치 같은 프로그램에서는 멀티 프로세스를 사용해서 프로그램을 돌리는게 더 낫다고 생각한다.