开发者社区> 问答> 正文

[@徐雷frank][¥20]volatile 能使得一个非原子操作变成原子操作吗?

问题来自Java技术沙龙的李博
Java线下沙龙报名链接:https://yq.aliyun.com/activity/796

展开
收起
李博 bluemind 2018-12-13 10:37:00 2740 0
1 条回答
写回答
取消 提交回答
  • 可以。使用volatile修饰的变量,线程在每次使用的时候,都会读取变量修改后最后的值。例如一个典型的例子实在类中有long类型的成员变量。如果该变量被多个线程访问好把该变量设置 为volatile,为什么,因为java读取long类型的变量,不是原子的,需要分两步如果一个线程正在修改long变量值,另一个线程可能看到该值的一半(32位),但是对volatile型的long或double变量的读写是原子。

    2019-07-17 23:20:22
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
原子变量与内存模型 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载