死鎖是指多個進程(線程)因為長久等待已被其他進程占有的的資源而陷入阻塞的一種狀態。當等待的資源一直得不到釋放,死鎖會一直持續下去。死鎖一旦發生,程式本身是解決不了的,只能依靠外部力量使得程式恢復運行,例如重啟,開門狗複位等。 所以內核中設計了內核死鎖檢測機制,一旦發現死鎖進程,就重啟OS,快刀斬亂麻 ...
死鎖是指多個進程(線程)因為長久等待已被其他進程占有的的資源而陷入阻塞的一種狀態。當等待的資源一直得不到釋放,死鎖會一直持續下去。死鎖一旦發生,程式本身是解決不了的,只能依靠外部力量使得程式恢復運行,例如重啟,開門狗複位等。
所以內核中設計了內核死鎖檢測機制,一旦發現死鎖進程,就重啟OS,快刀斬亂麻解決問題。之所以使用重啟招數,還是在於分散式系統中可以容忍單點崩潰,不能容忍單點進程計算異常,否則進行死鎖檢測重啟OS就得不償失了。