[27][29][单选]下列图示描述的是经典的哲学家进餐问题。
(图中为 5 个哲学家围绕一张圆桌,桌上有 5 支筷子,每个哲学家左右两边各有一支筷子) 下列各种方法中,哪一种方法可以预防死锁的发生
为每位哲学家的左右两只筷子各设置一个信号量,哲学家同时对这两个信号量执行 P、V 操作
为每只筷子设置一个信号量,哲学家通过执行 P、V 操作保证筷子互斥使用
定时检查,当发现死锁时,额外提供一支筷子
采用银行家算法分配筷子
答案
为每位哲学家的左右两只筷子各设置一个信号量,哲学家同时对这两个信号量执行 P、V 操作
解析
为每位哲学家的左右两只筷子各设置一个信号量,哲学家同时对这两个信号量执行 P、V 操作,当某位哲学家想进餐时,必须同时拿到左右两只筷子才能进餐,这样可以避免出现循环等待导致的死锁情况。
转载请注明出处。