A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 陈劲松 中级黑马   /  2015-8-30 20:07  /  317 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

总结以下几种情况下释放对同步监视器的锁定:
* 当前线程的同步方法、同步代码块执行结束,当前线程即释放同步监视器。
* 当前线程在同步代码块、同步方法中遇到break、return终止了该代码块、该方法的继续执行。
* 当前线程在同步代码快、同步方法中出现了未处理的Error或Exception,导致异常结束。
* 当前线程执行同步代码块或同步方法时,程序执行了同步监视器对象的wait()方法,则当前线程暂停并释放同步监视器。
还有,调用Thread.sleep()和Thread.yield()方法来暂停线程时不会释放同步监视器。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马