Java基础: 什么是指令重排序/as-if-serial/内存屏障/happens-before
Java基础知识指令重排序在执行程序时,为了提高性能,编译器和处理器会对指令做重排序。编译器优化重排序:编译器在不改变单线程程序语义的前提下,可以重新安排语句的执行顺序。指令级并行的重排序:如果不存l在数据依赖性,处理器可以改变语句对应机器指令的执行顺序。内存系统的重排序:处理器使用缓存和读写缓冲区,这使得加载和存储操作看上去可能是在乱序执行。但是,可以通过插入特定类型的MemoryBarrier