JAVA并发实战学习笔记 第三章 对象的共享 失效数据: java程序实际运行中会出现①程序执行顺序对打乱;②数据对其它线程不可见——两种情况 上述两种情况导致在缺乏同步的程序中出现失效数据这一现象,且“失效”这一情况不确定性很大,因为可能出现可能没出现。 JVM中没有规定对于64位变量如:long, double 的读写操作必须是原子的,因此不同步的情况下读取该类数据可能得到的值无意义(低32位和高32位没有一起形成完整的数字) 商用的JVM一般会让64位变量的读取原子化。 使用volatile修饰变量可以保证变量的可见性,但不会保证互斥性,是比内置锁更弱的同步...