스케줄러가 보는 thread의 대표 상태

실행 가능과 사건 대기를 구분하면 출력 순서를 추측하지 않게 된다.

1

NEW

start 이전

아직 scheduling 대상이 아니다

2

RUNNABLE

실행 또는 실행 queue

CPU를 받을 수 있다

3

WAITING

join·latch 사건

조건이 풀릴 때까지 CPU를 놓는다

4

TERMINATED

run 반환

같은 객체를 재시작할 수 없다

핵심: priority와 sleep은 업무 순서를 고정하지 않으며 명시적 coordination이 필요하다.