死鎖
1.什麼是死鎖?
* 死鎖指多個線程在運行過程中因爭奪資源而造成的一種僵局。當線程處理這種僵持狀態時,若沒有外力,則都無法向前推進
2.導致死鎖的原因?
* 多個線程同時被阻塞,他們中一個或者全部線程都在等待某個資源而釋放,而資源又被其他線程鎖定
* 從而導致每一個線程都得等其他線程釋放其鎖定的資源,造成所有線程都無法正常結束
3.死鎖產生的四個條件
* ①.互斥條件 一個資源只能被一個進程所佔用,此時其他進程請求該資源,則請求必須等待
* ②.不剝奪條件 進程使用的資源在未完成之前,不能被其他進程強行奪走
4.死鎖的處理策略
* ①.預防死鎖 破壞其中一個必要條件
* ②.避免死鎖
* ③.死鎖的檢測及解除