volatile JVM是多线程的环境,多个线程在实际运行的时候,有可能是在不同的CPU核心中运行的,所以每一个线程在读取内存的数据的时候,也有可能是读取的线程内部的缓存,这个时候,假如其他某个线程修改了这个变量,对于这线程来说是不知情的,也就是不可见的。 volatile 关键字的机制来解决这个问题。它能保证,某一个线程对变量修改了以后,对其他的线程时可见的 volatile 保证有序性 可见性 不保证原子性 TODO JUC