阻止死鎖的途徑就是避免滿足死鎖條件的情況發生,為此我們在開發的過程中需要遵循如下原則:
1.盡量避免併發的執行涉及到修改資料的語句。
2.要求每乙個事務一次就將所有要使用到的資料全部加鎖,否則就不允許執行。
3.預先規定乙個加鎖順序,所有的事務都必須按照這個順序對資料執行封鎖。如不同的過程在事務內部對物件的更新執行順序應盡量保證一致。
4.每個事務的執行時間不可太長,對程式段的事務可考慮將其分割為幾個事務。在事務中不要求輸入,應該在事務之前得到輸入,然後快速執行事務。
5.使用盡可能低的隔離級別。
6.資料儲存空間離散法。該方法是指採用各種手段,將邏輯上在乙個表中的資料分散的若干離散的空間上去,以便改善對錶的訪問效能。主要通過將大表按行或者列分解為若干小表,或者按照不同的使用者群兩種方法實現。
7.編寫應用程式,讓程序持有鎖的時間盡可能短,這樣其它程序就不必花太長的時間等待鎖被釋放。
如何避免死鎖
如何避免死鎖 1 使用事務時,盡量縮短事務的邏輯處理過程,及早提交或回滾事務 2 設定死鎖超時引數為合理範圍,如 3分鐘 10分種 超過時間,自動放棄本次操作,避免程序懸掛 3 優化程式,檢查並避免死鎖現象出現 4 對所有的指令碼和sp都要仔細測試,在正是版本之前。5 所有的sp都要有錯誤處理 通過...
如何避免死鎖
什麼是死鎖,如何避免死鎖?執行緒a需要資源x,而執行緒b需要資源y,而雙方都掌握有對方所要的資源,這種情況稱為死鎖 deadlock 或死亡擁抱 the deadly embrace 在併發程式設計中,死鎖 deadlock 是一種十分常見的邏輯錯誤。通過採用正確的程式設計方式,死鎖的發生不難避免。...
如何避免死鎖
什麼是死鎖,如何避免死鎖?執行緒a需要資源x,而執行緒b需要資源y,而雙方都掌握有對方所要的資源,這種情況稱為死鎖 deadlock 或死亡擁抱 the deadly embrace 在併發程式設計中,死鎖 deadlock 是一種十分常見的邏輯錯誤。通過採用正確的程式設計方式,死鎖的發生不難避免。...