正在回答 回答被采纳积分+1
1回答
ChaseLight
2019-04-22 12:41:16
因为生产者和消费者程序现在都处于一种等待状态,各个线程是通过竞争CPU时间来获取运行的,各个线程什么时候得到CPU时间,占用多久,是不可预测的.
产生死锁的四个必要条件
1、互斥使用,即当资源被一个线程使用(占有)时,别的线程不能使用
2、不可抢占,资源请求者不能强制从资源占有者手中夺取资源,资源只能由资源占有者主动释放。
3、请求和保持,即当资源请求者在请求其他的资源的同时保持对原有资源的占有。
4、循环等待,即存在一个等待队列:P1占有P2的资源,P2占有P3的资源,P3占有P1的资源。这样就形成了一个等待环路。
当这四个条件都满足的时候,就会产生死锁,谢谢,个人理解,望采纳
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星