volatile在Java内存模型(JMM)中,保证共享变量对所有线程可见,但不保证原子性.volatile语义是同步,通过共享变量的方式,完成线程间的通信. 为什么需要volatile Java内存模型中抽象.简化了计算机物理设备,分成工作内存和主内存,线程有各自的工作内存,却共享主内存.如果要把Java内存模型与物理设备映射起来的话,L1,L2 Cache可以视为工作内存,而L3 Cache视为主内存.线程执行指令时,会优先选择距离 CPU 较近的位置的工作内存中使用,而不会从读写速度较慢的…