五个哲学家吃五盘通心粉,由于通心粉很滑,所以必须要拿起左右两边的叉子才能吃到. 叉子的摆放如图所示. 那么问题来了:能为每一个哲学家写一段描述其行为的程序,保证不会出现死锁. 解法1:让他等待能够使用的时候,然后去叉子用餐 这种方法很显然行不通,如果所有人都去拿左边的叉子,就没有人能够拿到右边的叉子 解法2:在拿到左叉的时候,然后检查右边的叉子是否可用,如果可用就拿起右叉,如果不行就放下左叉. 这种方法也是不行的,可能在某一个瞬间,可能在某一时刻哲学家一起拿起左叉然后看到右叉不可用,就都放下左叉…