您的位置:首页 > 其它

简述synchronized和volatile的区别

2020-07-27 15:44 197 查看

1)volatile本质是在告诉jvm当前变量在寄存器中的值是不确定的,需要从主从中读取;synchronized是锁住当前变量,只有当前线程可以访问该变量,其他变量被阻塞。
2)volatile仅使用在变量级别,synchronized可以修饰变量、方法。
3)volatile仅能实现变量的修改可见性;而synchronized可以保证变量的修改可见性和原子性。
4)volatile不会造成线程的阻塞;synchronized可能会。
5)volatile标记不会编译器优化;而synchronized标记的变量会。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: