std:: thread
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
定义于头文件
<thread>
|
||
|
class
thread
;
|
(C++11 起) | |
thread
类代表
单个执行线程
。线程允许多个函数并发执行。
线程在关联的线程对象构造完成后立即开始执行(受限于操作系统调度延迟),从作为 构造函数参数 提供的顶层函数开始运行。顶层函数的返回值会被忽略,若其通过抛出异常终止,则将调用 std::terminate 。顶层函数可通过 std::promise 或修改共享变量(这可能需要进行同步,参见 std::mutex 和 std::atomic )将其返回值或异常传递给调用方。
std::thread
对象也可能处于不表示任何线程的状态(在默认构造、移动操作、
detach
或
join
之后),并且执行线程可能不与任何
thread
对象关联(在
detach
之后)。
任意两个
std::thread
对象都不能表示同一执行线程;
std::thread
不满足
可复制构造
或
可复制赋值
要求,但满足
可移动构造
与
可移动赋值
要求。
目录 |
成员类型
| 成员类型 | 定义 |
native_handle_type
(
可选*
)
|
由实现定义 |
成员类
|
表示线程的
标识符
(公开成员类) |
成员函数
构造新的
thread
对象
(公开成员函数) |
|
|
析构线程对象,底层线程必须被加入或分离
(公开成员函数) |
|
|
移动线程对象
(公开成员函数) |
|
观察器 |
|
|
检查线程是否可加入,即是否可能在并行上下文中运行
(公开成员函数) |
|
|
返回线程的
id
(公开成员函数) |
|
|
返回底层实现定义的线程句柄
(公开成员函数) |
|
|
[static]
|
返回实现支持的并发线程数量
(公开静态成员函数) |
操作 |
|
|
等待线程完成执行
(公开成员函数) |
|
|
允许线程独立于线程句柄执行
(公开成员函数) |
|
|
交换两个线程对象
(公开成员函数) |
|
非成员函数
|
(C++11)
|
特化
std::swap
算法
(函数) |
参见
|
(C++20)
|
std::thread
支持自动合并和取消功能
(类) |