qq_吹不断的苇草_0
2015-05-17 21:50
有个问题想问一下:最后一节的总结部分说读64位数据的问题为什么用volatile来修饰呀,volatile不是没有原子性吗
64位可以能会拆成两个32位的
32bit数据的读写是一个原子操作,对64bit数据加volatile仅仅只是保证数据的读写具有不可重入性以及可见性——这样就够了。第一个32bit读完之后,才允许读第二个32bit,且必须从主线程内存中刷新,这样可以保证数据的有效性。
细说Java多线程之内存可见性
55908 学习 · 74 问题
相似问题