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

【JAVA SE基础篇】59.同步块、并发容器和死锁

时间:2020-07-17 22:13:14      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:style   无法访问   技术   并发   info   http   com   span   同步   

1.同步块

同步块(synchronized(obj)){  },obj称之为同步监视器

  1.obj可以是任何对象,但是推荐使用共享资源作为同步监视器

  2.同步方法中无需指定同步监视器,因为同步方法的同步监视器时this即该对象本身,或class即类的模子

同步监视器执行过程

  1.第一个线程访问,锁定同步监视器,执行其中代码

  2.第二个线程访问,发现同步监视器被锁定,无法访问

  3.第一个线程访问完毕,解锁同步监视器

  4.第二个线程访问,发现同步监视器未锁,访问并锁定

注:java中四大块:局部块,构造块,静态块,同步块。

技术图片

 

 例:

技术图片

 

 2.并发容器

技术图片

3.死锁

多个线程各自占有一些共享资源,并且互相等待其他线程占有的资源才能进行,

而导致两个或者多个线程都在等待对方释放资源,都停止执行的情形。某一个同步块同时拥有

"两个以上对象的锁"时,就可能会发生死锁的问题

例:

技术图片

 

【JAVA SE基础篇】59.同步块、并发容器和死锁

标签:style   无法访问   技术   并发   info   http   com   span   同步   

原文地址:https://www.cnblogs.com/chengkuan/p/13332668.html

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