死鎖的概念,產生和預防

2021-09-26 07:14:39 字數 664 閱讀 4941

1.死鎖的基本概念

死鎖是指兩個或兩個以上的程序在執行過程中,由於競爭資源或者由於彼此通訊而造成的一種

阻塞的現象,若無外力作用,它們都將無法推進下去。此時稱系統處於死鎖狀態或系統產生了

死鎖,這些永遠在互相等待的程序稱為死鎖程序。

2.產生死鎖的4個必要條件

互斥條件:程序要求對所分配的資源進行排它性控制,即在一段時間內某資源僅為一程序所占用。

請求和保持條件:當程序因請求資源而阻塞時,對已獲得的資源保持不放。

不剝奪條件:程序已獲得的資源在未使用完之前,不能剝奪,只能在使用完時由自己釋放。

環路等待條件:在發生死鎖時,必然存在乙個程序–資源的環形鏈。

3.預防死鎖的發生

資源一次性分配:一次性分配所有資源,這樣就不會再有請求了:(破壞請求條件)

只要有乙個資源得不到分配,也不給這個程序分配其他的資源:(破壞請保持條件)

可剝奪資源:即當某程序獲得了部分資源,但得不到其它資源,則釋放已占有的資源(破壞不可剝奪條件)

資源有序分配法:系統給每類資源賦予乙個編號,每乙個程序按編號遞增的順序請求資源,釋放則相反(破壞環路等待條件)

1.使用多個鎖,設計好鎖的獲取順序

2.使用帶設定鎖超時方法

死鎖的產生和預防死鎖

1,死鎖的定義 死鎖是指多個進 程因競爭資源而造成的一種僵局 互相等待 若無外力作用,這些程序都將無法向前推進。2,死鎖產生的原因主要是 1 因為系統資源不足。2 程序執行推進的順序不合適。3 資源分配不當等。3,死鎖產生的必要條件 1 互斥條件 乙個資源每次只能被乙個程序使用。2 請求與保持條件 ...

死鎖的產生與預防

在多執行緒中,為了保證執行緒安全,我們會使用互斥鎖,在某些程序或者執行緒中,使用了某些資源,為了完成任務,需要請求某些程序或執行緒所擁有的資源,從而形成了永久性等待狀態 1.互斥條件 乙個資源每次只能被乙個執行流執行 2.請求與保持 乙個資源想要獲取資源時阻塞,不會釋放已有資源 3.不可剝奪條件 乙...

死鎖的產生條件和預防處理

所謂死鎖 是指兩個或兩個以上的程序在執行過程中,因爭奪資源而造成的一種互相等待的現象,若無外力作用,它們都將無法推進下去。此時稱系統處於死鎖狀態或系統產生了死鎖,這些永遠在互相等待的程序稱為死鎖程序。由於資源占用是互斥的,當某個程序提出申請資源後,使得有關程序在無外力協助下,永遠分配不到必需的資源而...