课程
/后端开发
/Java
/细说Java多线程之内存可见性
有个问题想问一下:最后一节的总结部分说读64位数据的问题为什么用volatile来修饰呀,volatile不是没有原子性吗
2015-05-17
源自:细说Java多线程之内存可见性 5-1
正在回答
64位可以能会拆成两个32位的
32bit数据的读写是一个原子操作,对64bit数据加volatile仅仅只是保证数据的读写具有不可重入性以及可见性——这样就够了。第一个32bit读完之后,才允许读第二个32bit,且必须从主线程内存中刷新,这样可以保证数据的有效性。
举报
用两种方式实现内存可见性,代领大家深层次学习Java中的内存
5 回答synchronized问题
3 回答Thread.yiled问题
2 回答重排序问题
2 回答缩小锁粒度是什么意思?
2 回答volatile原子性问题