Programming/java
[Java] 멀티태스킹 - Thread (스레드)의 우선 순위
필로그래머
2017. 5. 24. 09:53
[Java] 자바 멀티태스킹 - Thread (스레드)의 우선 순위
멀티 태스킹 : 스레드의 우선 순위
- 자바는 스레드의 우선 순위를 10단계로 나누어 관리한다.
1~10까지 지정한다.
- "main" 스레드의 기본 우선 순위는 5이다.
- "main" 스레드에서 새 스레드를 만들면, 그 스레드는 "main"의 자식 스레드가 된다.
자식 스레드는 부모 스레드의 우선 순위와 동일한 값을 갖는다.
- 그런데, 사실상 자바의 우선 순위는 실행에 별 영향을 끼치지 못한다.
이유 :
1) 스레드를 최종 관리하는 곳은 OS이기 떄문이다. 따라서 OS가 스레드를 관리하는
방식(스케줄링 방식)에 따라 실행이 결정된다.
2) 자바는 1~10까지 우선 순위의 단계가 있지만, 그 자바를 실행하는 OS는
그 종류에 따라 단계가 다르다. 예를 들면, WIndows는 7단계, Solaris는
65535단계 등 이렇게 OS와 자바 사이의 단계가 일치하지 않기 때문에 어차피
자바의 우선순위를 정밀하게 조정할 수 없다.
- 결론 :
스레드의 우선 순위를 고려하여 프로그래밍 하지 말자!