原文: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(); }