JAVA中volatile是保证变量可见性的 volatile修饰的变量可以在多线程中保证变量的可见性,使得变量不会因为缓存的原因出现并发错误。那么volatile底层到底是通过什么机制保证变量的可见性的呢? 嗅探 JMM内存屏障: 在每个volatile写操作的前面插入一个StoreStore屏障在每个volatile写操作的后面插入一个SotreLoad屏障在每个volatile读操作的后面插入一个LoadLoad屏障在每个volatile读操作的后面插入一个LoadStore屏