码迷,mamicode.com
首页 > 编程语言 > 详细

Java同步锁何时释放?

时间:2015-01-31 12:18:18      阅读:257      评论:0      收藏:0      [点我收藏+]

标签:同步

任何线程进入同步代码块、同步方法之前,必须获得同步监视器的锁定,那么何时会释放这个锁定呢?在程序中,是无法显式释放对同步监视器的锁的,而会在如下几个情况下释放锁。

1、当前线程的同步方法、代码块执行结束的时候释放

2、当前线程在同步方法、同步代码块中遇到break 、 return 终于该代码块或者方法的时候释放。

3、。。。。出现未处理的error或者exception导致异常结束的时候释放

4、。。。。程序执行了 同步对象 wait 方法 ,当前线程暂停,释放锁


==============================================================如下情况不会释放锁=====================================

1、。。。。。。程序调用 Thread.sleep()  Thread.yield() 这些方法暂停线程的执行,不会释放。

2、线程执行同步代码块时,其他线程调用 suspend 方法将该线程挂起,该线程不会释放锁 ,所以我们应该避免使用 suspend 和 resume 来控制线程

Java同步锁何时释放?

标签:同步

原文地址:http://blog.csdn.net/cjaver/article/details/43339815

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!