【Java多線程】(三)volatile關鍵字

關鍵字volatile的主要作用是使變量在多個線程間可見。(當線程訪問某個變量是,強制性從公共堆棧中進行取值)

synchronized和volatile關鍵字比較:

1.volatile只能修飾變量,synchronized可以修飾方法以及代碼塊。

2.volatile能保證數據的可見性,但不能保證原子性,而synchronized可以保證原子性,也可以加間接保證可見性。

3.volatile解決的是變量在多個線程之間的可見性,而synchronized解決的時多個線程之間訪問資源的同步性。

另外可以使用原子類AtomicInteger實現原子操作,即也能實現同步。

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