一、死鎖的概念 多個線程的同步如果設計不當,就會造成死鎖。死鎖是指多個線程共用某些資源時,都在等待對方釋放資源,從而導致程式停滯不前的情況。 死鎖會造成程式停滯不前,所以我們在編寫多線程程式時一定要註意避免死鎖現象的發生。其實上面的問題很好解決,只要兩個線程以相同的順序訪問臨界資源即可。 設置鎖定超 ...
一、死鎖的概念
多個線程的同步如果設計不當,就會造成死鎖。死鎖是指多個線程共用某些資源時,都在等待對方釋放資源,從而導致程式停滯不前的情況。
死鎖會造成程式停滯不前,所以我們在編寫多線程程式時一定要註意避免死鎖現象的發生。其實上面的問題很好解決,只要兩個線程以相同的順序訪問臨界資源即可。 設置鎖定超時時間, 使用這種方法也可以來避免死鎖
二、死鎖的條件
互斥條件:資源不能被共用,只能由一個進程使用。
請求與保持條件:已經得到資源的進程可以再次申請新的資源。
非剝奪條件:已經分配的資源不能從相應的進程中被強制地剝奪。
迴圈等待條件:系統中若幹進程組成環路,改環路中每個進程都在等待相鄰進程正占用的資源。
ps:博客園新手,有說的不對的地方歡迎大家指正,多多交流。