1)volatile性能肯定比synchronized要好,並且volatile只能修飾變量,而synchronized可以修飾方法以及代碼塊
2)多線程訪問volatile不會阻塞,而synchronized會出現阻塞
3)volatile能保證數據的可見性,但不能保證原子性;而synchronized可以保證原子性也可以間接保證可見性,因爲它會將私有內存和公共內存中的數據做同步。
另外:
關鍵字volatile的作用是強制從公共堆棧中取得變量的值,而不是從線程私有數據棧中取得變量的值。