首页
学习
活动
专区
工具
TVP
发布

atomic_exchange

在头文件<stdatomic.h>中定义

?

?

C atomic_exchange (volatile A * obj,需要C语言);

(1)

(自C11以来)

C atomic_exchange_explicit(volatile A * obj,C desired,memory_order order);

(2)

(自C11以来)

原子替换obj指向的值desired并返回obj之前保存的值。操作是读取 - 修改 - 写入操作。第一个版本根据命令对内存进行访问memory_order_seq_cst,第二个版本根据内存访问内存访问order

这是为所有原子对象类型定义的通用函数A。该参数是指向易失性原子类型的指针,以接受非易失性和易失性(例如内存映射I/O)原子变量的地址。C是与...相对应的非原子类型A..

参数

obj

-

指向要修改的原子对象的指针

desired

-

用来替换原子对象的值

order

-

此操作的内存同步排序:所有值都是允许的

返回值

之前保存的值是指向的原子对象obj

参考

  • C11标准(ISO/IEC 9899:2011):
    • 7.17.7.3 atomic_exchange通用函数(p: 283)

另请参阅

atomic_compare_exchange_strongatomic_compare_exchange_strong_explicitatomic_compare_exchange_weakatomic_compare_exchange_weak_explicit (C11)

swaps a value with the an atomic object if the old value is what is expected, otherwise reads the old value (function)

| C++ documentation for atomic_exchange, atomic_exchange_explicit |

扫码关注便宜云主机开发者

领取便宜云主机代金券

http://www.vxiaotou.com