2010-07-13 100 views
0

我正在閱讀新的材料前知道術語「哲學家同步算法」,但我無法理解它。任何人都可以幫助我理解它是什麼?哲學家同步算法

感謝

+0

您是指:http://en.wikipedia.org/wiki/Dining_philosophers_problem? – 2010-07-13 21:44:54

+0

@大衛:從一個快速的谷歌,我沒有發現任何具體的措辭,但提到了餐飲哲學家的問題。當然,這個問題沒有附加算法,所以我不知道OP真正想要什麼。 – 2010-07-13 21:59:18

回答

1

這只是一個用來描述可以在其中你有可以不關心對方進行共享對象的動作很多實體併發世界發生什麼事衆多例子之一。

問題很簡單:你有X哲學家安排在一個圓桌(與虛構的意大利麪菜每個被吃掉)和X叉子,每一對哲學家之間。

遊戲規則強加一個哲學家需要兩個叉子就能消耗他的意大利麪條和示例說明了如何簡單地讓其中的任何嘗試,而無需關心別人吃會導致

  • deadlocks:每一個哲學家把他的左叉,然後他們都等待另一個叉,但沒有自私的哲學家會放棄他的人,所以他們會永遠等待
  • starvation:有沒有保證,任何哲學家將最終能吃(檢查維基百科頁面的確切解釋爲什麼)
  • livelocks:另一個典型的例子..如果一個規則強加給phils試圖在獲得第一個分支後得到第二個分支最多5分鐘,然後釋放已經獲得的分支,你可以有一種情況,其中所有他們都是準確同步的,他們繼續服用一個叉和時間到期

後,在你的問題,你清楚地瞭解與此相關的問題(所以我想意思來解決剛纔所描述的問題的算法)的算法講話釋放它,維基百科提供4個here