解決程序的關鍵部分(Critical Section)問題時,必須滿足以下三個重要條件:
確保在任意時刻最多只有一個進程或線程進入關鍵部分,防止同時訪問共享資源造成數據不一致。
如果沒有進程在關鍵部分內,且有進程希望進入關鍵部分,則那些希望進入關鍵部分的進程必須能夠及時進入,不能無限期地等待。
確保每個進程在有限次數的嘗試後能夠進入關鍵部分,防止某個進程被無限期地延遲(即避免飢餓現象)。