學家進餐問題也是一個經典的同步問題,它是由Dijkstra提出并解決的。哲學家進餐問題是這樣的:5個哲學家以思考、吃飯交替進行的方式生活,他們共享一張周圍有5把椅子的圓桌,每人一把椅子,在桌子上擺有5個飯碗和5只筷子。當一個哲學家思考時,他不與鄰座同事發生聯系。當一哲學家餓了,他就試圖拿起他左右兩邊的筷子吃飯。顯然,他不能拿起已抓在他的鄰座手中的筷子,于是,他可能只拿到一只甚至一只筷子也拿不到。當一個饑餓的哲學家得到了兩只筷子,他就可以吃飯。當他用飯畢,就放下筷子并再次開始思考。5個哲學家共享5支筷子,最多只能不相鄰的兩個哲學家同時就餐請問:是否有死鎖的可能?
在多道程序設計環境下,進程同步問題十分重要,其中“哲學家進餐問題”是較有代表性的。通過對該問題的研究學習和實踐,可以幫助我們更好的理解和掌握臨界資源、進程同步的概念和實現方法。
標簽:
家
上傳時間:
2017-05-27
上傳用戶:changeboy