为了账号安全,请及时绑定邮箱和手机立即绑定

小问题求解

有个问题想问一下:最后一节的总结部分说读64位数据的问题为什么用volatile来修饰呀,volatile不是没有原子性吗

正在回答

2 回答

64位可以能会拆成两个32位的

0 回复 有任何疑惑可以回复我~

32bit数据的读写是一个原子操作,对64bit数据加volatile仅仅只是保证数据的读写具有不可重入性以及可见性——这样就够了。第一个32bit读完之后,才允许读第二个32bit,且必须从主线程内存中刷新,这样可以保证数据的有效性。

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
细说Java多线程之内存可见性
  • 参与学习       55910    人
  • 解答问题       74    个

用两种方式实现内存可见性,代领大家深层次学习Java中的内存

进入课程

小问题求解

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信