모니터 대기의 두 관문

조건을 기다리는 위치와 모니터 입장을 기다리는 위치는 서로 다른 상태다.

1

모니터 소유

RUNNABLE

한 스레드가 임계 영역에서 공유 상태를 검사한다.

2

조건 대기

WAITING

wait 호출자가 락을 놓고 객체 대기 집합에 머문다.

3

입구 경쟁

BLOCKED

다른 스레드가 같은 모니터의 해제를 기다린다.

4

재진입 완료

RUNNABLE

알림과 락 재획득을 마친 작업자가 술어를 확인한다.

핵심: 알림을 받았다는 사실만으로 모니터 입구 경쟁까지 끝난 것은 아니다.