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