c# 為什么會出現死鎖?多線程死鎖怎么解決


出現死鎖必須滿足以下幾個條件:

1.互斥條件:該進程擁有的資源,其他進程只能等待其釋放。

2.不剝奪條件:該進程擁有的資源只能由它自己來釋放。

3.請求和保持條件:請求其他的資源,同時自己擁有的資源又不願意放手。

4.循環等待:A等待B持有的資源,B等待A持有的資源,相互等待對方釋放。

 

總結一下:

多個進程之間對資源的相互競爭,造成無限時長等待,就是造成死鎖。

死鎖解決辦法:

我們可以通過對鎖加時效性,或者死鎖檢測來處理。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM