哲学家进餐问题难点理解

Note

只分析难点,不阐述细节

Conclusion

每个人最终都能拿到左边筷子

假如A坐在B左边。
A:

1、拿左边

2、拿右边

3、吃饭

4、放回右边

5、放回左边

B:

1、拿左边

2、拿右边

3、吃饭

4、放回右边

5、放回左边

代码决定了每个哲学家拿筷子的顺序都是一致的。

B拿左边只有在A拿了右边的情况下才会失败,但你看看A拿了右边说明什么?说明A吃饭了啊,吃完饭会放回去的。所以每个人都最终能拿到左边筷子。

什么时候会出现死锁

只有每个人都拿不到右边筷子才会死锁。
这个用反证法证明,如果有一个人拿到了右边筷子说明已经拿到左边了「因为先拿左再拿右,你拿到右边筷子了还敢跟我说你没有左边筷子?」。
那说明他已经两根都有了可以吃饭,吃完他就会释放左右筷子,所以结论就是某个路人哲学家吃完饭后会释放自己拿到的左边筷子,左边人就可以用上自己右边的被路人哲学家占用的筷子了「根据上面的每个人都有左边筷子结论可以知道,你想吃饭但吃不上的阻碍不是左边筷子,而是右边筷子」所以左边人就能吃上饭,所以我能吃上 可推 我左边能吃上,根据归纳法可知道最终所有人都能吃上。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值