胡七奕
2017-08-05 10:03
不是说volatile不保证原子性吗?为什么对于64位类型的变量用volatile修饰?
对于32位操作系统,64位变量的读取同样不是一个原子操作,需要volidate保证原子性
64位 会分成两个32位执行
对于不加valatile的64位变量,JVM会分成两次读写.
加了volatile一次完成.
jaba c
修饰只是保证了一次读写,不会分成2次。
加了volatile就会一次读写,不会分为两次读写。跟volatile不能保证原子性没有关系。
我也有同样的问题
应该是syn吧
细说Java多线程之内存可见性
55910 学习 · 74 问题
相似问题