首页 > 其他 > 详细

1.5 synchronized其他概念

时间:2019-12-04 12:17:17      阅读:64      评论:0      收藏:0      [点我收藏+]

synchronized锁重入:

关键字synchronized拥有锁重入的功能,也就是使用synchronized时,当一个线程得到了一个对象的锁后,再次请求此对象时是可以再次得到对象的锁.

技术分享图片

 

 

 输出结果:

技术分享图片

 

 

 method1方法加了synchronized了,在method1()方法中调用加synchronized的method2()方法是完全没有问题的.

===================================================================================================================================

例二:

技术分享图片

 

 

技术分享图片

 

 技术分享图片

 

 通过此例反映出:

有父子继承关系的时候,如果都加synchronized修饰了,以下这种调用也是线程安全的

技术分享图片

 

 ================================================================================================================================

碰到异常示例:(就是加锁方法在执行过程中如果出现异常,那么锁就立马释放了,其他在外面等的线程就直接 进来了)

  说明:对于web应用程序,异常释放锁的情况,如果不及时处理,很可能对你的应用程序业务逻辑产生严重的错误,比如你现在执行一个队列任务,很多对象都去在等待第一个对象正确执行完毕再去释放锁,但是第一个对象由于异常的出现,导致业务逻辑没有正常执行完毕,就释放了锁,那么可想而知后续对象执行的都是错误的逻辑.所以这一点一定要引起注意,在编写代码的时候,一定要考虑周全.

例如:

技术分享图片

 

技术分享图片

 技术分享图片

会抛出异常:

技术分享图片

 

 技术分享图片

 

厉害了!!!

 

 

 

  

 

1.5 synchronized其他概念

原文:https://www.cnblogs.com/curedfisher/p/11980891.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!