这个题目,1971年由荷兰电脑科学家Edsger W. Dijkstra提出
主要概念就如这张图:
https://upload.wikimedia.org/wikipedia/commons/8/81/Dining_philosophers_diagram.jpg
wiki短网址
https://w.wiki/EikT
[问题描述]
哲学家就餐问题可以这样表述,假设有五位哲学家围坐在一张
圆形餐桌旁,做以下两件事情之一:
吃饭,或者思考。
吃东西的时候,他们就停止思考,思考的时候也停止吃东西。
餐桌上有五碗意大利面,每位哲学家之间各有一支餐叉。
因为用一支餐叉很难吃到意大利面,所以假设哲学家必须用
两支餐叉吃东西。他们只能使用自己左右手边的那两支餐叉。
哲学家就餐问题有时也用米饭和五根筷子而不是意大利面和
餐叉来描述,因为吃米饭必须用两根筷子。
这个问题不考虑意大利面有多少,也不考虑哲学家的胃有多大
。假设两者都是无限大。
[进一步说明]
这个问题旨在说明避免死结的挑战,死结是一种程式无法继续
执行的状态。