死鎖問題

哲學家就餐問題線程

  • 問題描述:哲學家就餐問題,須要兩個而資源才能完成任務,但都鎖死了各自的資源,致使死鎖問題產生,誰也沒法同時持有兩個資源
  • 避免法則:當多個線程共享 A B C 三個資源時,讓他們都按照必定的順序使用資源,這樣就不會鎖死各自的資源了,在哲學家就餐問題中:資源(餐叉)按照某種規則編號爲1至5,每個工做單元(哲學家)老是先拿起左右兩邊編號較低的餐叉,再拿編號較高的。用完餐叉後,他老是先放下編號較高的餐叉,再放下編號較低的。在這種狀況下,當四位哲學家同時拿起他們手邊編號較低的餐叉時,只有編號最高的餐叉留在桌上,從而第五位哲學家就不能使用任何一隻餐叉了。並且,只有一位哲學家能使用最高編號的餐叉,因此他能使用兩隻餐叉用餐。當他吃完後,他會先放下編號最高的餐叉,再放下編號較低的餐叉,從而讓另外一位哲學家拿起後邊的這隻開始吃東西。
相關文章
相關標籤/搜索