古詩詞大全網 - 成語用法 - 什麽是死鎖(deadlock)?

什麽是死鎖(deadlock)?

所謂死鎖: 是指兩個或兩個以上的進程在執行過程中,因爭奪資源而造成的壹種互相等待的現象,若無外力作用,它們都將無法推進下去。此時稱系統處於死鎖狀態或系統產生了死鎖,這些永遠在互相等待的進程稱為死鎖進程。

由於資源占用是互斥的,當某個進程提出申請資源後,使得有關進程在無外力協助下,永遠分配不到必需的資源而無法繼續運行,這就產生了壹種特殊現象死鎖。壹種情形,此時執行程序中兩個或多個線程發生永久堵塞(等待),每個線程都在等待被其他線程占用並堵塞了的資源。例如,如果線程A鎖住了記錄1並等待記錄2,而線程B鎖住了記錄2並等待記錄1,這樣兩個線程就發生了死鎖現象。計算機系統中,如果系統的資源分配策略不當,更常見的可能是程序員寫的程序有錯誤等,則會導致進程因競爭資源不當而產生死鎖的現象。

排除方法:

1、撤消陷於死鎖的全部進程;

2、逐個撤消陷於死鎖的進程,直到死鎖不存在;

3、從陷於死鎖的進程中逐個強迫放棄所占用的資源,直至死鎖消失;

4、從另外壹些進程那裏強行剝奪足夠數量的資源分配給死鎖進程,以解除死鎖狀態。