std::atomic
的 store
:std::atomic<int> my_atomic;
my_atomic.store(1, std::memory_order_seq_cst);
当请求具有顺序一致性的存储时,执行xchg
操作?
从技术角度来说,一个普通的存储器屏障与读写功能是否已足够呢?与以下代码等效:
_ReadWriteBarrier(); // Or `asm volatile("" ::: "memory");` for gcc/clang
my_atomic.store(1, std::memory_order_acquire);
我明确地谈论x86和x86_64。其中一个存储具有隐式获取栅。
_ReadWriteBarrier()
和asm volatile("" ::: "memory")
都是编译器栅栏,不会转换为任何栅栏指令。 - Leandrosxchg
而不是简单的mov
(假设目标正确对齐时也是原子性的)。 - Leandros