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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM