39比较Volatile与Synchronized。
1.Volatile是轻量级的synchronized,因为它不会引起上下文的切换和调度,所以Volatile性能更好。2.Volatile只能修饰变量,synchronized可以修饰方法,静态方法,代码块。3.Volatile对任意单个变量的读/写具有原子性,但是类似于i++这种复合操作不具有原子性。而锁的互斥执行的特性可以确保对整个临界区代码执行具有原子性。4.多线程访问volatile不会发生阻塞,而synchronized会发生阻塞。5.volatile是变量在多线程之间的可见性,synchronize是多线程之间访问资源的同步性。
来自:并发和同步-volatile