为什么会产生死锁没搞懂

为什么会产生死锁没搞懂

就拿这个例子举例一下,为什么两个会同时等待???

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
ChaseLight 2019-04-22 12:41:16

因为生产者和消费者程序现在都处于一种等待状态,各个线程是通过竞争CPU时间来获取运行的,各个线程什么时候得到CPU时间,占用多久,是不可预测的.

产生死锁的四个必要条件

1、互斥使用,即当资源被一个线程使用(占有)时,别的线程不能使用

2、不可抢占,资源请求者不能强制从资源占有者手中夺取资源,资源只能由资源占有者主动释放。

3、请求和保持,即当资源请求者在请求其他的资源的同时保持对原有资源的占有。

4、循环等待,即存在一个等待队列:P1占有P2的资源,P2占有P3的资源,P3占有P1的资源。这样就形成了一个等待环路。

当这四个条件都满足的时候,就会产生死锁,谢谢,个人理解,望采纳


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师