与 Ben Ari 的频道就餐哲学家陷入僵局?
Posted
技术标签:
【中文标题】与 Ben Ari 的频道就餐哲学家陷入僵局?【英文标题】:Deadlock in dining philosophers with channels from Ben Ari? 【发布时间】:2021-05-04 11:35:56 【问题描述】:在 Ben Ari 的《并发和分布式编程原理》(第 2 版)第 8.4 章,用通道吃饭的哲学家中,他们提出了一个我认为可能导致死锁的解决方案。 假设哲学家 3 拿了叉子 3。然后哲学家必须拿第四叉子吃饭。但是第四个叉子可能会被第四个哲学家拿走。
一般来说,每个哲学家都可能先拿“他左边”的叉子,结果他们每个人都在等待另一个叉子被释放,这永远不可能发生。
是我遗漏了什么,还是这个解决方案不完整?
在关于信号量的章节中,也发生了类似的事情,但作者提出了一种替代解决方案来缓解死锁情况。例如,可以添加一个限制,以便一位哲学家首先在其他人的另一侧分叉,从而避免死锁。我认为这可能是一个可能的解决方案,但我想在这里与其他人确认。
提前致谢!
【问题讨论】:
【参考方案1】:是我遗漏了什么,还是这个解决方案不完整?
我绝对没有遗漏任何东西:我与在我的大学教授这本书的教授确认,这种解决方案确实会导致僵局。
【讨论】:
以上是关于与 Ben Ari 的频道就餐哲学家陷入僵局?的主要内容,如果未能解决你的问题,请参考以下文章