std::memory_order 含义

typedef enum memory_order {
  memory_order_relaxed,  // 不对顺序做任何保证
  memory_order_consume,  // 标记读操作,本线程中,依赖于该值的读写不能重排到此操作前
  memory_order_acquire,  // 标记读操作,本线程中,该原子操作先完成,才执行之后的读写原子操作
  memory_order_release,  // 标记写操作,本线程中,之前的读写原子操作完成,才进行此原子操作
  memory_order_acq_rel,  // 仅标记读改写操作,读操作相当于 acquire,写操作相当于 release
  memory_order_seq_cst   // 全部读写按照顺序执行
} memory_order;

整理自std::memory_order - C++ - API Reference Document

posted @ 2022-02-26 14:56  补码  阅读(117)  评论(0编辑  收藏  举报