Thread의 우선순위
쓰레드의 우선순위는 O/S 스케쥴러가 쓰레드의 실행 시점을 Scheduling하기위해 참조하는 지표로, 프로그래머가 쓰레드를 생성할 때 지정할 수 가 있다.
프로그래머는 쓰레드의 역할에 따라 적절한 우선순위를 부여하여, 어플리케이션이 목적하는 바를 안정적으로 수행할 수 있도록 해야 겠다.
![]() |
스레드의 우선권(priority)는 통상 0~9로 구분되며, 레벨 값이 낮을 수록 우선권이 높다. 즉, 우선권이 0인 스레드가 짱이다. 우선권이 높다는 것은 여러 스레드가 대기상태(ready)에 있을 때 우선 실행 (preempt)될 수 있는 권한이 있다는 의미이다.
(1) 우선권이 가장 높은 쓰레드가 정지상태 또는 소멸상태로 천이하지 않고 있다면 스케쥴러는 그 쓰레드만 실행시킬 것이다. 따라서, 우선권이 높은 쓰레드일 수록 먹을만큼 먹었으면, 어떤 방법을 써서라도 다른 쓰레드에게 양보의 미덕을 발휘해야 겠다.
(2) 동일 레벨의 스레드들이 대기하고 있다면 스케쥴러는 시간을 균등하게 분배하여 쓰레드들이 번갈아 실행되도록 할 것이다. |