자동 monitor 해제와 explicit lock 누수

thread가 비정상 경로를 나갈 때 누가 release를 책임지는지 비교한다.

synchronized block

block을 나가면 JVM이 monitor를 반납한다

automatic

ReentrantLock without finally

owner thread가 끝나도 lock이 남아 이후 획득을 막는다

leak
필수 patternprivate final lock과 try-finally를 code review에서 확인한다

핵심: 다른 thread가 사망한 owner 대신 unlock할 수 없다.