violate原理

violate能够保证变量的可见性和有序性 可见性:我们对一个共享变量的读取和写入可能不会立即刷新到内存,可能处于缓存,这个时候读取或者写入可能不是最新的值,可见性保证读取的是最新的值,写入操作立即刷新到内存 有序性:jvm为了优化执行效率,代码的执行顺序不一定会按照我们编写的顺序执行,多线程环境下可能会产生线程安全问题 violate保证可见性和有序性的原理是通过内存屏障实现的