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