java/개념

자바의 멀티스레딩

unhyepnhj 2024. 11. 19. 18:35

멀티스레드와 JVM

- 자바에는 프로세스가 존재하지 않고 스레드 개념만 존재

- JVM은 멀티스레딩만 지원

- 자바 스레드(java thread): JVM에 의해 스케줄되는 실행 단위 코드 블록

자바 응용프로그램의 실행 과정
1. 사용자가 자바 응용프로그램을 실행
2. JVM이 먼저 실행
3. JVM이 자바 응용프로그램을 로딩하여 실행
4. 자바 응용프로그램 종료
5. JVM도 함께 종료

- 하나의 JVM은 하나의 자바 응용프로그램만 실행(* 이때 응용프로그램이란 main() 함수를 의미한다)

- 한 컴퓨터에서 n개의 자바 응용프로그램이 실행될 때 n개의 JVM이 실행, 각각의 자바 응용프로그램은 별개의 메모리 영역에서 독립적으로 실행

- 2개 이상의 자바 응용프로그램을 실행하려면 위와 같이 실행되어야 함

- n개의 자바 응용프로그램이 n개의 JVM에 의해 각각 실행되며, 서로 정보를 주고받아야 하는 경우 통신 방법 이용


자바 스레드와 JVM

- 스레드를 만들기 위해 스레드로 실행될 프로그램 코드를 작성

- 이후 스레드 스케줄링 및 스레드 정보는 JVM이 관리