互联网架构多线程并发高级教程

洪阳 | 互联网架构师/自媒体

17480人已购买

立即购买

并发编程的挑战

  • 第01讲:来!让我们走进上下文切换
  • 第02讲:简单又不失大雅的死锁案例
  • 第03讲: 死锁产生的必要条件与解决方案
  • 第04讲 并发资源限制的挑战

并发机制的底层实现原理

Java内存模型

各种各样的锁

并发编程实战

并发容器和框架

单例模式的线程安全性

并发工具类

原子变量与非阻塞同步机制

第03讲 死锁产生的必要条件与解决方案

2020-11-04 弘成IT
00:00
看视频
就java的多线程而言,产生死锁的必要条件
 
1,必须有2个或以上的线程。一个线程是不会产生死锁的,它顶多产生等待。
2,必须有2个临界资源,即,必须有2个锁。这也是死锁产生的必要的条件。当只有一个临界资源,或者说只有一个锁时,当一个线程获取了锁,另一个线程虽然暂时无法获取锁,但它至多也就是需要进行等待。而不会陷入死锁。
3,两个线程,每个线程都获取了其中的一个锁,但为了完成工作,还需对方的另一个锁。这种情况下,才会产生死锁。这种情况也称为循环等待。
4,不可剥夺。
 
 
 
本节为免费试看,购买后可解锁全部章节 立即购买

请扫码查看完整内容