课程
/后端开发
/Java
/细说Java多线程之内存可见性
不是说volatile不保证原子性吗?为什么对于64位类型的变量用volatile修饰?
2017-08-05
源自:细说Java多线程之内存可见性 5-1
正在回答
对于32位操作系统,64位变量的读取同样不是一个原子操作,需要volidate保证原子性
64位 会分成两个32位执行
对于不加valatile的64位变量,JVM会分成两次读写.
加了volatile一次完成.
jaba c
修饰只是保证了一次读写,不会分成2次。
加了volatile就会一次读写,不会分为两次读写。跟volatile不能保证原子性没有关系。
我也有同样的问题
应该是syn吧
举报
用两种方式实现内存可见性,代领大家深层次学习Java中的内存
1 回答volatile不能保证原子性,解决方法
2 回答volatile原子性
2 回答volatile原子性问题
1 回答为什么两个volatile变量在不变式中就会使得volatile线程不安全?
3 回答共享变量和volatile变量区别