概 c++的atomic使用总会配合各种各样的memory order进行使用,memory order控制了执行结果在多核中的可见顺序,,这个可见顺序与代码序不一定一致(第一句代码执行完成的结果不一定比第二句早提交到内存),其一是进行汇编的进行了指令优化重排,其二是cpu实际执行时乱序执行以及部分cpu架构上没有做到内存强一致性(内存强一致性:可以简单的理解为,执行结果出现的顺序应该和指令顺序一样,不存在重排乱序),导致后面的代码执行完成的时候,前面的代码修改的内存却还没改变 结果序和代码序不…