Atom in C++11

2023-07-20  本文已影响0人  帆子_8c3a

Memory ordering

  1. Sequentially consistent ordering :
    memory_order_seq_cst
  2. Acquire-release ordering :
  1. Relaxed ordering :

memory_order_relaxed 没有fencing作用
memory_order_consume 后面依赖此原子变量的访存指令勿重排至此条指令之前
memory_order_acquire 后面访存指令勿重排至此条指令之前
memory_order_release 前面访存指令勿重排至此条指令之后。当此条指令的结果对其他线程可见后,之前的所有指令都可见
memory_order_acq_rel acquire + release语意
memory_order_seq_cst acq_rel语意外加所有使用seq_cst的指令有严格地全序关系

fence

上一篇 下一篇

猜你喜欢

热点阅读