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

Posted Kuan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA SE基础篇59.同步块并发容器和死锁相关的知识,希望对你有一定的参考价值。

1.同步块

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

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

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

同步监视器执行过程

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

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

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

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

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

 

 例:

 

 2.并发容器

3.死锁

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

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

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

例:

 

以上是关于JAVA SE基础篇59.同步块并发容器和死锁的主要内容,如果未能解决你的问题,请参考以下文章

java高并发编程

Java并发-同步容器篇

Java并发-同步容器篇

Java并发-同步容器篇

《java并发编程实战》读书笔记4--基础构建模块,java中的同步容器类&并发容器类&同步工具类,消费者模式

Java并发编程学习6-同步容器类和并发容器