问十六:synchronized与volatile的区别?

1)volatile本质是告诉JVM当前变量在寄存器中的值是不确定的,需要从主存中读取,不会造成线程阻塞synchronized则是锁定当前变量,只有当前线程可以访问该变量,其它线程被阻塞

2)volatile仅能使用在变量级别synchronized则可以使用在变量、方法

3)volatile仅能实现变量修改的可见性,而synchronized则可以保证变量修改的可见性和原子性

4)使用volatile而不是synchronized的唯一安全情况是类中只有一个可变的域

全部评论

相关推荐

2025-12-31 14:31
湖南科技大学 Web前端
是阿亮吖:一个是这个时间招人比较少,另一个是沟通太少了。六十多份太养生了,最起码沟通个五六百份吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务