死鎖

主要參考的文章點這里

死鎖的必要條件

  1. 互斥:同一資源不能同時分配給兩個進程。
  2. 不可搶占:不能搶占已經分配給一個進程的資源。
  3. 占有與等待:已經得到了某個資源的進程可以再請求新的資源。
  4. 環(huán)路等待:多個進程組成一條環(huán)路,該環(huán)路中的每個進程都在等待下一個進程所占有的資源。

死鎖的處理方法

1. 鴕鳥策略

把頭埋在沙子里,假裝根本沒發(fā)生問題。

因為解決死鎖問題的代價很高,因此鴕鳥策略這種不采取任務措施的方案會獲得更高的性能。
當發(fā)生死鎖時不會對用戶造成多大影響,或發(fā)生死鎖的概率很低,可以采用鴕鳥策略。

大多數(shù)操作系統(tǒng),包括 Unix,Linux 和 Windows,處理死鎖問題的辦法僅僅是忽略它。

2. 死鎖預防

在程序運行之前,預防發(fā)生死鎖。

3. 死鎖避免

在程序運行時,避免發(fā)生死鎖。

4. 死鎖檢測與恢復

不試圖阻止死鎖,而是當檢測到死鎖發(fā)生時,采取措施進行恢復。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 一、死鎖的基本概念 1.1 死鎖的定義 一組進程中,每個進程都無限等待被該組進程中另一進程所占用的資源,因而永遠無...
    yjaal閱讀 1,574評論 0 6
  • 資源 需要排他性使用的對象稱為資源。 資源分為兩類:可搶占的和不可搶占的??蓳屨假Y源可以從擁有它的進程中搶占而不會...
    啊啊啊這個名字就好閱讀 712評論 0 0
  • 1、競態(tài)條件: 定義:競態(tài)條件指的是一種特殊的情況,在這種情況下各個執(zhí)行單元以一種沒有邏輯的順序執(zhí)行動作,從而導致...
    Hughman閱讀 1,442評論 0 7
  • 風,不急不慢地吹著 蒼老的葉子 它想落就落 終于等到了 要親吻大地的時刻 它想滾就滾 終于又回到母親的懷中 一個勁...
    寶藏男孩兒閱讀 303評論 0 2
  • app/build.gradle 報錯 錯誤信息:Cannot set the value of read-onl...
    goodl閱讀 966評論 0 1

友情鏈接更多精彩內容