小问题求解

来源:5-1 课程总结

qq_吹不断的苇草_0

2015-05-17 21:50

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

写回答 关注

2回答

  • 斌哥在此
    2020-11-30 22:27:48

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

  • 鬼羽子
    2016-01-02 19:30:00

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

细说Java多线程之内存可见性

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

55908 学习 · 74 问题

查看课程

相似问题