Thread가 종료되거나 예외가 났다는 사실만으로 ReentrantLock이 자동 해제되지는 않습니다.
블록 exit 때 JVM이 monitor 해제
예외 뒤 owner 유지 · 영구 대기
모든 경로에서 unlock
핵심: 명시적 lock은 모든 반환·예외 경로에서 finally unlock이 보이도록 작성합니다.