본문 바로가기
Java

하나의 JVM 은 멀티 core 를 사용할 수 있는가?

by 무대포 개발자 2020. 11. 6.
728x90
반응형

하나의 JVM 은 멀티 core 를 사용할 수 있는가?

  • JVM 은 하나의 프로세스에서 동작하는 것이 맞다.
  • 해당 JVM 에서 스레드를 생성해 사용할 때는 OS 의 스레드를 사용함.
  • OS 는 OS 스레드를 스케줄링하는 책임이 있다.
  • 이 OS 의 스레드는 다른 multi core 에 있으며, 결국 하나의 JVM 에서 멀티 코어를 사용할 수 있다.

1개 프로세스 멀티 쓰레드 vs 멀티 프로세스 정리

  • 1개의 프로세스 멀티 쓰레드가 이론적으로 더 속도가 나올 것이라 생각되지만 막상 벤치마킹 하면 속도차이가 얼마 안난다.
    • 스레드 간 문맥교환이 프로세스 간 문맥교환 보다 적은 비용이지만 실제 성능은 비슷하다.
  • 멀티 쓰레드는 사용하기 어렵다. 스레드 간 자원 공유를 고려하며, 프로그래밍 해야하기 때문
  • 배치 같은 프로그램에서는 멀티 프로세스를 사용해서 프로그램을 돌리는게 더 낫다고 생각한다.

reference

'Java' 카테고리의 다른 글

java primitive vs wrapper 설명  (0) 2020.11.12
java Optional 설명  (0) 2020.11.07
자바 클래스, 객체, 인스턴스란?  (0) 2020.11.04
singleton pattern 설명  (0) 2020.10.29
람다식 정리  (0) 2020.10.10

댓글