死锁问题

哲学家就餐问题

  • 问题描述:哲学家就餐问题,需要两个而资源才能完成任务,但都锁死了各自的资源,导致死锁问题产生,谁也无法同时持有两个资源
  • 避免法则:当多个线程共享 A B C 三个资源时,让他们都按照一定的顺序使用资源,这样就不会锁死各自的资源了,在哲学家就餐问题中:资源(餐叉)按照某种规则编号为1至5,每一个工作单元(哲学家)总是先拿起左右两边编号较低的餐叉,再拿编号较高的。用完餐叉后,他总是先放下编号较高的餐叉,再放下编号较低的。在这种情况下,当四位哲学家同时拿起他们手边编号较低的餐叉时,只有编号最高的餐叉留在桌上,从而第五位哲学家就不能使用任何一只餐叉了。而且,只有一位哲学家能使用最高编号的餐叉,所以他能使用两只餐叉用餐。当他吃完后,他会先放下编号最高的餐叉,再放下编号较低的餐叉,从而让另一位哲学家拿起后边的这只开始吃东西。
posted @ 2017-08-08 17:21  岑忠满  阅读(173)  评论(0编辑  收藏  举报