Condition을 사용해도 공유 상태 불변식과 finally unlock 책임은 그대로입니다.
owner 획득
await
조건 재검사
불변식 유지
상대 Condition
항상 해제
핵심: 상태를 바꾼 뒤 해당 predicate를 기다리는 Condition에 신호를 보냅니다.