关于死锁问题!谢谢!

关于死锁问题!谢谢!

生产等待消费,消费等待生产因而会产生死锁。为什么会同时产生两个等待呢?不太符合代码逻辑啊,因为flag为true或false时只有一个线程处于等待而另一个则会走if语句之后的代码啊!那就没有产生两个等待啊!怎么理解呢?谢谢!

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

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

1回答
好帮手慕雪 2020-11-25 09:36:01

同学,你好,例如:走到消费时,一判断没生产出来呢,所以就开始等待了,而生产完如果没有唤醒别的线程,所以这时消费永远都在等待中,这样就会产生死锁。祝学习愉快!

  • 提问者 Ceoking #1

    那为啥在没有notify方法前也会正常运行没有死锁呢?

    2020-11-26 19:35:48
  • 好帮手慕雪 回复 提问者 Ceoking #2

    这只是概率性的,并不是固定。但我们做的程序得保证它没有死锁,一次也不能出现。

    2020-11-27 09:28:19
  • 提问者 Ceoking 回复 好帮手慕雪 #3

    好的,谢谢!

    2020-11-27 10:58:15
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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