3.jpg

微信公众号:爱问CTO
专业编程问答社区
www.askcto.com

Java内存模型对于64位的数据类型(long和double),特别定义了一条规定:允许虚拟机将没有被volatile修饰的64位数据的读写操作划分为两次32位的操作来进行。即允许虚拟机实现选择可以不保证64位数据类型的load、store、read和write这4个操作的原子性。不过目前各种平台下的商用虚拟机几乎都选择把64位数据的读写操作作为原子操作来对待,因此编码时,一般不需要把用到的long和double变量专门声明为volatile。


爱问CTO
18 声望2 粉丝

爱问CTO 专业编程问答网站