C atomic_load_explicit( const volatile A* obj, memory_order order ); (2) (C11 起) 原子地加载并返回 obj 所指向的原子对象的当前值。该操作是原子读操作。 第一版本按照 memory_order_seq_cst 排序内存访问,第二版本根按照 order 排序内存访问。 order 必须是 memory_order_relaxed、 memory_order_co...
#include <stdatomic.h> #include <stdio.h> int main() { atomic_int counter = 0; // 使用atomic_store存储值 atomic_store(&counter, 10); // 使用atomic_load读取值 int value = atomic_load(&counter); printf("Counter value: %d ", value); // 使用atomic_fetch_add...
load 和 store:用于读取和写入原子变量的值。 exchange:交换原子变量的值,并返回之前的值。 compare_exchange_strong 和 compare_exchange_weak:比较并交换操作,可在特定条件下修改原子变量的值。 fetch_add 和 fetch_sub:原子地执行加法和减法操作,并返回之前的值。 这里原子操作后为什么要返回之前的值呢? 以fetch...
三、std::atomic的主要功能 原子读写操作:std::atomic提供了原子读写操作,如load()、store()等。这些操作可以保证数据在多线程环境中的一致性。 原子算术和位操作:std::atomic还提供了一系列原子算术和位操作,如fetch_add()、fetch_and()等。这些操作可以实现对数据的原子性修改。 原子比较和交换操作:通过compar...