線程中的同步與死鎖及解決辦法

 

1.什麼是同步

通過synchronized關鍵字標識方法或者代碼塊,限制線程對其內容的操作

2.爲什麼要同步

java允許多線程併發控制,當多個線程同時操作一個可共享的資源變量時(如數據的增刪改查),

將會導致數據不準確,相互之間產生衝突,因此加入同步鎖以避免在該線程沒有完成操作之前,被其他線程的調用,

從而保證了該變量的唯一性和準確性.

3.進行同步的格式

同步代碼塊

synchronized (同步的線程對象){

需要同步的代碼塊;

}

同步方法

synchronized 其他訪問修飾符返回值方法名稱(){

   方法內容

}

(synchronized也可以修飾靜態方法,此時如果調用該靜態方法,將會鎖住整個類)

4.什麼是死鎖

死鎖是進程死鎖的簡稱,是指多個進程循環等待它方佔有的資源而無限期地僵持下去的局面。它是計算機操作系統乃至併發程序設計中最難處理的問題之一

死鎖的解決

(死鎖詳細介紹參見進程死鎖及解決辦法.docx)

5.注意點

1.同步是一種高開銷的操作,因此應該儘量減少同步的內容。

  通常沒有必要同步整個方法,使用synchronized代碼塊同步關鍵代碼即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章