C++ 库 - <原子>


介绍

它是一个原子类型的对象,包含特定类型(T)的值,原子对象的主要特征是从不同线程访问该包含的值不会导致数据竞争(即,这样做是明确定义的行为,访问顺序正确)。通常,对于所有其他对象,如果同时访问同一对象而导致数据争用,则该操作将被视为未定义行为。

宣言

以下是 std::atomic 的声明。

template <class T> struct atomic;

参数

T - 它是所包含值的类型。

会员功能

先生。 会员功能及定义
1 (构造函数)

它是一个构造原子对象

2 运算符=

它将值存储到原子对象中

3 是否无锁

它检查原子对象是否是无锁的

4 店铺

它以原子方式用非原子参数替换原子对象的值

5 加载

它以原子方式获取原子对象的值

6 操作员T

它从原子对象加载一个值

7 交换

它原子地替换原子对象的值并获取之前持有的值

8 比较交换弱和比较交换强

它以原子方式将原子对象的值与非原子参数进行比较,如果相等则执行原子交换,如果不相等则执行原子加载

某些专业支持的操作

先生。 操作与定义
1 获取添加

它以原子方式将参数添加到原子对象中存储的值并获取先前保存的值

2 获取子

它以原子方式从原子对象中存储的值中减去参数,并获得先前保存的值

3 获取并

它以原子方式在参数和原子对象的值之间执行按位与,并获取先前保存的值

4 获取或

它以原子方式在参数和原子对象的值之间执行按位或,并获取先前保存的值

5 获取异或

它以原子方式将原子对象的值与非原子参数进行比较,如果相等则执行原子交换,如果不相等则执行原子加载

6 运算符++

它将原子值加一

7 操作员 -

它将原子值减一

原子.htm