为了提高效率采取的优化。包括:1:编译器重排序:编译的时候重排序2:指令级并行重排序:cpu对指令对重排序3:内存重排序:由于缓存的问题(实际上是store buffer),读取还未刷新的主内存等情况。
上述对单线程不影响,没有共享变量的多线程也不影响,但是影响存在共享变量的多线程。由于存在重排序,所以后面的代码B可能被排在A前面,影响了A的可见性,