我对 C++11 的std::memory_order
类型有很好的概念性理解(宽松vs获取发布vs顺序一致......),但我想更好地理解它们通常是如何(由编译器)为 x86 实现的(或 x86_64) 目标。
memory_order_consume
具体来说,比较每个顺序约束( 、memory_order_acquire
、memory_order_release
和)的低级细节(例如用于在处理器之间同步状态或缓存的重要内存相关 CPU 指令memory_order_seq_cst
)。
请提供尽可能多的底层细节,最好是x86_64或类似架构。您的帮助将不胜感激。