简述synchronized和volatile的区别
2020-07-27 15:44
197 查看
1)volatile本质是在告诉jvm当前变量在寄存器中的值是不确定的,需要从主从中读取;synchronized是锁住当前变量,只有当前线程可以访问该变量,其他变量被阻塞。
2)volatile仅使用在变量级别,synchronized可以修饰变量、方法。
3)volatile仅能实现变量的修改可见性;而synchronized可以保证变量的修改可见性和原子性。
4)volatile不会造成线程的阻塞;synchronized可能会。
5)volatile标记不会编译器优化;而synchronized标记的变量会。
相关文章推荐
- synchronized和volatile区别
- volatile、ThreadLocal、synchronized等3个关键字区别
- volatile和synchronized的区别与联系
- java中volatile和synchronized的区别与联系
- synchronized和volatile的区别
- volatile 与 synchronized 区别
- volatile与synchronized区别
- synchronized与volatile的区别
- volatile、synchronized、lock有什么区别,以及在哪些场景下使用哪种方式?
- synchronized、volatile、Atomic区别和用法
- 转:volatile和synchronized的区别
- Java Volatile关键字和 Synchronized关键字的区别
- 7、Volatile和synchronized区别、死锁概念
- synchronized与lock的区别,volatile关键字总结
- synchronized和volatile的区别
- volatile与synchronized的区别
- volatile 与synchronized的区别
- volatile与synchronized修饰变量的区别
- 简述ReentrantLock和Synchronized区别
- java synchronized与volatile的区别