volatile通常被认为是一种轻量级的synchronized,字面上它表示易变的,在并发编程中,它保证了共享变量的可见性.所谓可见性指的是,某个线程对变量进行操作后,其他线程能够读取到操作后的最新结果. CPU通常不会直接与内存通信,内存中的数据首先会被读取到缓存中进行读写.当对声明了volatile的变量进行写操作时,JVM会向处理器发送一条Lock前缀的指令,表示将变量锁在的缓存行数据写回内存中. 当写一个volatile变量时,Java内存模型JMM会把线程对应的本地内存的共享变量刷新…