전체 알림 뒤의 재경쟁

깨워진 모든 스레드가 임계 영역을 동시에 실행하는 것은 아니다.

1

상태 변경

queue changed

생산 또는 소비가 반대 술어를 참으로 만든다.

2

전체 각성

notifyAll

대기 집합의 모든 역할이 모니터를 경쟁한다.

3

한 명 진입

lock acquired

현재 조건이 맞는 작업 하나가 진행한다.

4

나머지 복귀

condition false

조건에서 진 참여자는 다시 대기한다.

핵심: 전체 알림은 동시 실행이 아니라 올바른 역할의 재검사 가능성을 보장한다.