我对C++11的std::memory_order
类型(relaxed、acquire-release和sequentially consistent)有很好的概念理解,但我希望更好地了解它们在x86(或x86_64)目标上通常是如何实现的(由编译器)。
具体而言,比较每个顺序约束(memory_order_consume
、memory_order_acquire
、memory_order_release
和memory_order_seq_cst
)的低级细节(例如用于在处理器之间同步状态或缓存的重要内存相关CPU指令)。
请尽可能提供更多的低级细节,最好是针对x86_64或类似的架构。非常感谢您的帮助。