- C 标准库
- C 标准库
- C++ 标准库
- C++ 库 - 主页
- C++ 库 - <fstream>
- C++ 库 - <iomanip>
- C++ 库 - <ios>
- C++ 库 - <iosfwd>
- C++ 库 - <iostream>
- C++ 库 - <istream>
- C++ 库 - <ostream>
- C++ 库 - <sstream>
- C++ 库 - <streambuf>
- C++ 库 - <原子>
- C++ 库 - <复杂>
- C++ 库 - <异常>
- C++ 库 - <功能>
- C++ 库 - <限制>
- C++ 库 - <语言环境>
- C++ 库 - <内存>
- C++ 库 - <新>
- C++ 库 - <数字>
- C++ 库 - <正则表达式>
- C++ 库 - <stdexcept>
- C++ 库 - <字符串>
- C++ 库 - <线程>
- C++ 库 - <元组>
- C++ 库 - <类型信息>
- C++ 库 - <实用程序>
- C++ 库 - <valarray>
C++ 库 - <Atomics>
介绍
这些类型封装了一个值,其访问保证不会导致数据争用,并且可用于同步不同线程之间的内存访问,并且Atomics库提供了细粒度Atomics操作的组件,允许无锁并发编程。每个Atomics操作对于涉及同一对象的任何其他Atomics操作都是不可分割的。
Atomics型
先生。 | 会员类型及定义 |
---|---|
1 |
Atomics
Atomics类模板以及 bool、整型和指针类型的特化 |
C 风格Atomics类型
以下是Atomics类型,也在该标头中定义。
包含型 | Atomics型 | 描述 |
---|---|---|
bool |
Atomics布尔值 | |
char |
Atomics字符 | 基本整数类型的Atomics。 这些是相应的完全专业化的类型定义Atomics类模板或此类专业化的基类。 |
signed char |
Atomics_schar | |
unsigned char |
Atomicsuchar | |
short |
Atomics短 | |
unsigned short |
Atomics_ushort | |
int |
Atomics整型 | |
unsigned int |
Atomicsuint | |
long |
Atomics长 | |
unsigned long |
Atomics_ulong | |
long long |
Atomics长 | |
unsigned long long |
Atomics乌龙 | |
wchar_t |
Atomics_wchar_t | |
char16_t |
Atomics字符16_t | |
char32_t |
Atomics字符32_t | |
整数最大_t | Atomicsintmax_t | 基于宽度的积分的Atomics(那些定义在<cinttypes>)。 其中每一个都是上述基本整型Atomics之一的别名,或者是该类型的完全特化Atomics具有扩展整数类型的类模板。 其中N是 8、16、32、64 或库支持的任何其他类型宽度中的一。 |
uintmax_t | Atomicsuintmax_t | |
int_least 氮_t |
atomic_int_least 氮_t |
|
uint_least 氮_t |
atomic_uint_least 氮_t |
|
int_fast 氮_t |
atomic_int_fast 氮_t |
|
uint_fast 氮_t |
atomic_uint_fast 氮_t |
|
intptr_t | Atomicsintptr_t | |
uintptr_t | Atomics_uintptr_t | |
尺寸_t | Atomics大小t | |
ptrdiff_t | Atomicsptrdiff_t |
Atomics类型的操作
先生。 | 操作与定义 |
---|---|
1 |
Atomics无锁
它用于检查Atomics类型的操作是否是无锁的 |
2 |
Atomics存储和Atomics存储显式
它自动用非Atomics参数替换Atomics对象的值 |
3 |
Atomics负载和Atomics负载显式
它以Atomics方式获取存储在Atomics对象中的值 |
4 |
Atomics交换和Atomics交换显式
它以Atomics方式用非Atomics参数替换Atomics对象的值,并返回Atomics对象的旧值 |
5 |
atomic_compare_exchange_weak&atomic_compare_exchange_weak_explicit&atomic_compare_exchange_strong&atomic_compare_exchange_strong_explicit
它以Atomics方式将Atomics对象的值与非Atomics参数进行比较,如果相等则执行Atomics交换,如果不相等则执行Atomics加载 |
6 |
atomic_fetch_add 和atomic_fetch_add_explicit
它将非Atomics值添加到Atomics对象并获取Atomics对象的先前值 |
7 |
atomic_fetch_sub 和atomic_fetch_sub_explicit
它从Atomics对象中减去非Atomics值并获得该Atomics的先前值 |
8 |
atomic_fetch_and 和atomic_fetch_and_explicit
它将Atomics对象替换为与非Atomics参数进行逻辑与的结果,并获取Atomics对象的先前值 |
9 |
atomic_fetch_or 和atomic_fetch_or_explicit
它将Atomics对象替换为与非Atomics参数进行逻辑或的结果,并获取Atomics对象的先前值 |
10 |
atomic_fetch_xor 和atomic_fetch_xor_explicit
它将Atomics对象替换为与非Atomics参数进行逻辑异或的结果,并获得Atomics对象的先前值 |
标志类型和操作
先生。 | 标志类型及定义 |
---|---|
1 |
Atomics标志
无锁布尔Atomics类型 |
2 |
atomic_flag_test_and_set 和atomic_flag_test_and_set_explicit
它以Atomics方式将标志设置为 true 并返回其先前的值 |
3 |
atomic_flag_clear 和atomic_flag_clear_explicit
它自动将标志的值设置为 false |