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;