Written by
java-style
on
on
0903_Java : Thread Priority 스레드 우선순위
0903_Java : Thread Priority 스레드 우선순위
- 자바의 스레드 스케쥴링은 우선순위(Priority)방식과 라운드 로빈(Round-robin) 방식을 사용한다.
1) 우선순위(Priority) 방식
- 우선순위가 높은 스레드가 실행 상태를 더 많이 가지도록 스케쥴링 하는 것
- 우선순위를 부여하여 코드로 제어가 가능하다.
2) 라운드 로빈(Round-robin) 방식
- 시간 할당량(Time Slice)을 정해서 스레드를 정해진 시간만큼 실행시키고 다른 스레드를 실행하는 방식
- JVM에 의해 정해지므로 코드로 제어할 수 없다.
- 스레드는 우선순위를 나타내는 필드(priority)를 가지고 있다. 1~10 사이의 값을 갖는다. (10: 가장 높음)
- 자바 런타임 스케줄러는 현재 실행 가능한 스레드들 중에서 우선순위가 가장 높은 스레드를 실행시켜 주는데, 현재 실행중인 스레드보다 더 높은 우선순위를 갖는 스레드가 실행가능 상태가 되면 자바 런타임 스케줄러는 우선순위가 더 높은 스레드를 실행시켜 준다.
- 스레드 우선 순위는 스레드를 생성한 스레드로부터 상속 받는다. main() 메소드에서 스레드를 생성하면 main() 메소드의 우선 순위가 5이므로 자동으로 5를 갖는다.
from http://development-writing.tistory.com/263 by ccl(S) rewrite - 2021-09-07 08:01:36