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

多线程中锁的释放问题

时间:2020-10-22 22:35:38      阅读:22      评论:0      收藏:0      [点我收藏+]

标签:bre   str   暂停   color   程序   exception   ret   使用   rgba   

不会释放锁的操作:

  • 线程执行同步代码或同步方法时,程序调用了Thread.sleep()、Thread.yield()方法暂停当前线程的执行;
  • 线程执行同步代码块时,其它线程调用了该线程的suspend()方法将该线程挂起,该线程不会释放锁(同步监视器);

注意:应尽量避免使用suspend()和resume()来控制线程

释放锁的操作:

  • 当前线程的同步方法、同步代码块执行结束;
  • 当前线程在同步代码块、同步方法中遇到break、reture终止了该代码块、该方法的继续执行;
  • 当前线程在同步代码块、同步方法中出现了为处理的Error和Exception,导致异常结束;
  • 当前线程在同步代码块、同步方法中执行了线程对象的wait()方法,当前线程暂停,并释放锁。

多线程中锁的释放问题

标签:bre   str   暂停   color   程序   exception   ret   使用   rgba   

原文地址:https://www.cnblogs.com/smallVampire/p/13856630.html

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