1. 程式人生 > >多執行緒同步方法彙總

多執行緒同步方法彙總

多執行緒同步方法彙總

為什麼需要同步?

多個執行緒同時訪問一個物件時,可能會同時出現讀寫這個物件,那麼這個物件的狀態就會混亂,從而出現異常。

synchronized關鍵字

可以用於修飾程式碼塊和方法,讓修飾的程式碼可以同時執行

使用同步鎖

Lock的系列子類等常見鎖,悲觀鎖的形式保證同步,具體鎖的種類可以檢視我另一篇文章java鎖的分類(簡單概括版)

執行緒通訊

不同執行緒間可以通過通訊以保證同步,具體方法請看我的另一篇文章

多執行緒的通訊

Volatile關鍵字

可以修飾成員變數,用於保證變數在不同執行緒進行操作時都可見,即修改立刻生效(預設不加關鍵字時,變數會先加入工作記憶體中等待加入主記憶體),但不能保證原子性。
因為不能保證原子性,synchronized則可以,所以volatile的應用範圍較小,常用於狀態標記變數或與synchronized同時使用。

本人學習記錄使用,歡迎留言互相學習交流。2018年12月29日13:12:30

參考文獻

多執行緒同步的五種方法
Java併發程式設計:volatile關鍵字解析