Java中Lock类放在try块之内和之外有什么区别?
原文:https://www.zhihu.com/question/54613772
下面2个例子是使用Lock类的不同写法,例子1是把lock()的方法调用写在了try的块之外,例子2是把lock()的调用在了try块之内,JDK自带的document都是按照例子1的写法。不知道例子2的写法会有什么问题?
例子1:
lock.lock();
try{
//do critical section code, which may throw exception
} finally {
lock.unlock();
}
例子2: 是否这种写法下,某种情况的时候lock()方法会抛出异常,finally块中unlock()调用就会抛出IllegalMonitorStateException?
try{
lock.lock();
//do critical section code, which may throw exception
} finally {
lock.unlock();
}

浙公网安备 33010602011771号