Memory ordering
- Sequentially consistent ordering :
memory_order_seq_cst - Acquire-release ordering :
- memory_order_acquire
- memory_order_release
- memory_order_consume
- memory_order_acq_rel
- Relaxed ordering :
- memory_order_relaxed
memory_order_relaxed 沒(méi)有fencing作用
memory_order_consume 后面依賴(lài)此原子變量的訪存指令勿重排至此條指令之前
memory_order_acquire 后面訪存指令勿重排至此條指令之前
memory_order_release 前面訪存指令勿重排至此條指令之后。當(dāng)此條指令的結(jié)果對(duì)其他線程可見(jiàn)后,之前的所有指令都可見(jiàn)
memory_order_acq_rel acquire + release語(yǔ)意
memory_order_seq_cst acq_rel語(yǔ)意外加所有使用seq_cst的指令有嚴(yán)格地全序關(guān)系
fence
- atomic_thread_fence