参考文章:点击打开链接
1)关键字volatile的主要作用是使变量可在多个线程间可见
2)关键字volatile是线程同步的清亮级实现,,所以volatile性能肯定比synchronized要好,并且volatile只能修饰语变量,而synchronize可以修饰方法,以及代码块。
3)volatile能保证数据的可加性,但是不能保证数据的原子性,而synchronize可以保证数据的原子性,也可以间接的保证可见性,因为它会将私有内存和公共内存中的数据做同步,即主内存和工作内存
4)再次强调,关键字volatile解决的是变量在多个线程之间的可见性,而synchronized关键字解决的是对个线程之间访问资源的同步性