我有C++ 11的std::memory_order
類型的一個很好的概念理解(輕鬆 VS 獲取釋放 VS 順序一致 ...),但我想有一個更好的理解他們是如何通常爲x86(或x86_64)目標實現(通過編譯器)。如何爲類x86系統實現C++ 11內存屏障?
具體而言,低級別的細節(例如用於處理器之間的同步狀態或高速緩存存儲器的重要相關的CPU指令)爲每個順序約束(memory_order_consume
,memory_order_acquire
,memory_order_release
和memory_order_seq_cst
)的比較。
請提供儘可能多的底層細節,最好是x86_64或類似的架構。您的幫助將非常感謝。
這也是非常有幫助的。 +1。 – etherice