![](//upload.wikimedia.org/wikipedia/commons/thumb/5/5f/Disambig_gray.svg/25px-Disambig_gray.svg.png)
「
死結」重新導向至此。關於有關繩結上的死結,請見「
單結」。
死鎖(英語:deadlock),又譯為死鎖,計算機科學名詞。當兩個以上的運算單元,雙方都在等待對方停止執行,以取得系統資源,但是沒有一方提前退出時,就稱為死結[1]。在多工作業系統中,作業系統為了協調不同線程,能否取得系統資源時,為了讓系統正常運作,必須要解決這個問題。另一種相似的情況稱為「活鎖」。
兩個行程以相反的順序競爭兩個資源。- 經過一個行程。
- 後面的行程需要等待。
- 當第一個行程鎖定第一個資源而第二個行程鎖定第二個資源時,就會發生死鎖。
- 可以透過取消並重新啟動第一個行程來解決死鎖
| 本條目存在以下問題,請協助 改善本條目或在 討論頁針對議題發表看法。
| 此條目需要精通或熟悉相關主題的編者參與及協助編輯。 (2015年3月22日) |
| 此條目 需要補充更多來源。 (2021年4月12日) |
|
P1、P2兩個process都需要資源才能繼續執行。P1擁有資源R2、還需要額外資源R1才能執行;P2擁有資源R1、還需要額外資源R2才能執行,兩邊都在互相等待而沒有任何一個可執行。
四個行程(藍線)競爭一種資源(灰色圓圈),遵循先右後左的策略。當所有行程同時鎖定資源(黑線)時,就會發生死鎖。可以透過打破對稱性來解決死鎖。