1.什麼是同步
通過synchronized關鍵字標識方法或者代碼塊,限制線程對其內容的操作
2.爲什麼要同步
java允許多線程併發控制,當多個線程同時操作一個可共享的資源變量時(如數據的增刪改查),
將會導致數據不準確,相互之間產生衝突,因此加入同步鎖以避免在該線程沒有完成操作之前,被其他線程的調用,
從而保證了該變量的唯一性和準確性.
3.進行同步的格式
同步代碼塊
synchronized (同步的線程對象){
需要同步的代碼塊;
}
同步方法
synchronized 其他訪問修飾符返回值方法名稱(){
方法內容
}
(synchronized也可以修飾靜態方法,此時如果調用該靜態方法,將會鎖住整個類)
4.什麼是死鎖
死鎖是進程死鎖的簡稱,是指多個進程循環等待它方佔有的資源而無限期地僵持下去的局面。它是計算機操作系統乃至併發程序設計中最難處理的問題之一
死鎖的解決
(死鎖詳細介紹參見進程死鎖及解決辦法.docx)
5.注意點
1.同步是一種高開銷的操作,因此應該儘量減少同步的內容。
通常沒有必要同步整個方法,使用synchronized代碼塊同步關鍵代碼即可。