關鍵字volatile的主要作用是使變量在多個線程間可見。(當線程訪問某個變量是,強制性從公共堆棧中進行取值)
synchronized和volatile關鍵字比較:
1.volatile只能修飾變量,synchronized可以修飾方法以及代碼塊。
2.volatile能保證數據的可見性,但不能保證原子性,而synchronized可以保證原子性,也可以加間接保證可見性。
3.volatile解決的是變量在多個線程之間的可見性,而synchronized解決的時多個線程之間訪問資源的同步性。
另外可以使用原子類AtomicInteger實現原子操作,即也能實現同步。