synchronized和volatile区别
展开全部
1、关键字不同
volatile 关键字是线程同步的轻量级实现,所以 volatile 性能肯定比synchronized关键字要好 。但是 volatile 关键字只能用于变量而 synchronized 关键字可以修饰方法以及代码块 。
2、修饰功能不同
volatile只能修饰变量,synchronized可以修饰方法、代码块。
3、线程阻塞情况不同
volatile不会造成线程的阻塞;synchronized可能会造成线程的阻塞。
4、原子性不同
volatile保证数据的可见性,但不能保证原子性;而synchronized可以保证原子性,也可以间接保证可见性,因为它会将私有内存中和公共内存中的数据做同步。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询