正如我们从 C11-memory_order 中了解到的:http: //en.cppreference.com/w/c/atomic/memory_order
与 C++11-std::memory_order 相同:http ://en.cppreference.com/w/cpp/atomic/memory_order
在强排序系统(x86、SPARC、IBM 大型机)上, 发布-获取排序是自动的。此同步模式不会发出额外的 CPU 指令,仅会影响某些编译器优化(例如,禁止编译器将非原子存储移动到原子存储释放之后或在原子加载获取之前执行非原子加载)
但是对于 x86-SSE 指令来说这是真的吗(除了 [NT] - 非临时的,我们总是必须使用 L/S/MFENCE)吗?
这里说,“sse 指令......对向后兼容性没有要求,并且内存顺序未定义”。人们认为,当需要时,为了与旧版本的处理器 x86 兼容而保留了严格的可排序性,但是新命令,即 SSE([NT] 除外) - 自动剥夺了释放-获取命令,是吗?