내 프로그램이 finally
블록 내부에서 잠금 해제 할 때 IllegalMonitorStateException
을 던졌습니다. Javadoc에 의하면,이 예외는 「현재의 thread가이 락을 보관 유지하지 않는 경우」에 슬로우됩니다. 그러나 프로그램이 finally 블록에 도달하면 잠금을 획득해야합니다. 잠금 장치는 전에는 잠금 해제되어 있지 않습니다. 자물쇠가 "길을 잃을 수 있습니까?"ReentrantReadWriteLock이 손실 됨 - IllegalMonitorStateException이 throw 됨
코드 예 : 두 종류의 의미가 다르므로 ReentrantReadWriteLock
ReentrantLock
을 업그레이드 할 때
final ReadWriteLock rwLock = new ReentrantReadWriteLock();
public void doSomething() {
Lock lock = rwLock.writeLock();
try {
doStuff();
} finally {
lock.unlock();
}
}