volatile和synchronized

如何把非原子性操作變成原子性操作?
1、volatile關鍵字只能保證可見性,並不保證原子性
2、synchronized關鍵字,使操作具有原子性

區分一下synchronize內置鎖和互斥鎖
1、內置鎖,在對象頭,自動獲取釋放,獲得的唯一方式,進入鎖保護的同步代碼塊
2、互斥鎖,內置鎖就是一個互斥鎖,當有多個線程獲取鎖時,只有一個能獲取成功,其他線程阻塞等待。

synchronized修飾範圍
1、修飾普通方法,鎖實例
2、修飾靜態方法,鎖類,一般不要在靜態方法上用synchronized,會造成阻塞。
3、修飾代碼塊,鎖住一個對象lock,synchronized(lock)

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