memory_order_consume: 对当前要读取的内存施加 release 语义(store),在代码中这条语句后面所有与这块内存有关的读写操作都无法被重排到这个操作之前 在这个原子变量上施加 release 语义的操作发生之后,consume 可以保证读到所有在 release 前发生的并且与这块内存有关的写入,举个例子: a = 0; c = 0; thread 1...
store函数可使用:memory_order_seq_cst、memory_order_release、memory_order_relaxed load函数可使用:memory_order_seq_cst、memory_order_acquire、memory_order_consume、memory_order_relaxed 需要同时读写的操作,如test_and_flag、exchange等操作, 除了memory_order_acq_rel不能使用,其他5种都能使用。 原子类型提供...
memory_order_release确保了线程1在进行原子操作前所有写在前面的非原子内存写入都已经完成了, memory_ord...