인터럽트 획득
lockInterruptibly로 입구 대기 중 취소를 허용한다.
명시적 잠금은 획득과 해제의 모든 종료 경로를 코드가 책임진다.
lockInterruptibly로 입구 대기 중 취소를 허용한다.
획득 성공 직후 예외 안전 구간을 시작한다.
술어 검사, 변경, Condition 알림을 같은 락 안에서 한다.
정상 반환과 예외 모두에서 정확히 한 번 unlock한다.
핵심: 획득에 성공하지 않은 경로에서는 unlock을 호출하지 않는다.