본문 바로가기

강좌/JAVA THREAD

자바 쓰레드(Thread) - 쓰레드(Thread)의 우선순위(Priority)

 

* 스레드가 수행하는 작업의 중요도에 따라 스레드의 우선순위를 서로 다르게 지정하여
  특정스레드가 더 많은 작업 시간을 갖도록 할 수 있다.
      - 우선순위의 낮고 높음은 상대적인 것이다.
      - 우선순위는 스레드를 생성한 스레드로부터 상속받는다.
      - 스레드를 실행하기 전에만 우선순위를 변경 할 수 있다.
      - 자바의 기본 선택 규칙은 고정 우선순위 스케줄링이다.
      - 수행가능한(Runnable)스레드 중(또는 모니터 획득을 기다리는 큐내의 스레드중) 가장
        우선순위가 높은것에 코드 수행기회를 부여한다.
      - 같은 우선순위의 스레드에 대해서는 라운드 로빈 방식으로 선택한다.
      - 현재 수행중인 스레드 보다 높은 우선순위의 스레드가 수행 가능한 상태가 되면
        바로 기회를 부여한다.(선점, preemption)

 

void setPriority(int newPriority y)
int getPriority()
yield();

MAX_PRIORITY = 10
MIN_PRIORITY = 1
NORM_PRIORITY = 5

 

 

범위    사용
10      위기관리
7~9     상호작용, 이벤트 처리
4~6     IO 관련작업
2~3     백그라운드 작업
1       기타다른 작업이 없을때 실행