모니터 프로토콜은 lock·predicate·wait set·signal이 함께 동작한다

네 요소 중 하나라도 다른 객체나 다른 조건을 사용하면 신호 유실과 불변식 위반이 생깁니다.

Monitor protocol한 칸 mailbox

lock

상태 보호

predicate

empty/full/closed

wait

lock release

notifyAll

상태 변경 알림

interrupt

취소 경로

핵심: 취소는 정상 데이터로 위장하지 않고 interrupt 또는 closed 상태로 표현합니다.