synchronized 关键字和 volatile 关键字的区别
synchronized关键字和volatile关键字是两个互补的存在,而不是对立的存在。
-
volatile关键字是线程同步的轻量级实现,而synchronized是线程同步的重量级实现,从性能上看,肯定是volatile要快一点。
-
volatile关键字只能修饰变量,而synchronized关键字可以修饰代码块和方法。
-
volatile关键字可以保证数据的可见性但不能保证原子性,而synchronized两者都可以保证。
-
volatile关键字主要用于解决变量在多线程之间的可见性问题,而synchronized关键字解决的是多个线程之间访问资源的同步性问题。