대기 패턴

조건 변수: 알림보다 조건 재확인이 핵심

대기 스레드는 깨어난 사실만 믿지 않습니다. 뮤텍스를 다시 얻은 뒤 프레디케이트로 공유 상태를 확인해야 안전하게 진행할 수 있습니다.

안전한 대기 루프

조건 점검
1 상태 보호

큐, 플래그, 종료 조건은 같은 뮤텍스로 읽고 씁니다.

2 wait 진입

조건이 거짓이면 뮤텍스를 놓고 대기 상태로 들어갑니다.

3 깨어난 뒤 재검사

알림이나 가짜 깨어나기 후에도 프레디케이트가 참인지 다시 확인합니다.

4 종료 신호 포함

생산 완료 같은 종료 조건을 포함해야 소비자가 영원히 기다리지 않습니다.