std::thread

来自cppreference.com
< cpp‎ | thread
 
 
并发支持库
线程
thread
(C++11)
(C++20)
this_thread 命名空间
(C++11)
(C++11)
(C++11)
协作式取消
互斥
(C++11)
通用锁管理
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
条件变量
(C++11)
信号量
闩与屏障
(C++20)
(C++20)
未来体
(C++11)
(C++11)
(C++11)
(C++11)
安全回收
(C++26)
风险指针
原子类型
(C++11)
(C++20)
原子类型的初始化
(C++11)(C++20 弃用)
(C++11)(C++20 弃用)
内存定序
(C++11)(C++26 弃用)
原子操作的自由函数
原子标志的自由函数
 
 
在标头 <thread> 定义
class thread;
(C++11 起)

thread 表示单个执行线程。线程允许多个函数同时执行。

线程在构造关联的线程对象时立即开始执行(等待任何OS调度延迟),从提供给作为构造函数参数的顶层函数开始。顶层函数的返回值将被忽略,而且若它以抛异常终止,则调用 std::terminate。顶层函数可以通过 std::promise 或通过修改共享变量(可能需要同步,见 std::mutexstd::atomic )将其返回值或异常传递给调用方。

std::thread 对象也可能处于不表示任何线程的状态(默认构造、被移动、detachjoin 后),并且执行线程可能与任何 thread 对象无关(detach 后)。

没有两个 std::thread 对象会表示同一执行线程;std::thread 不是可复制构造 (CopyConstructible) 可复制赋值 (CopyAssignable) 的,尽管它可移动构造 (MoveConstructible) 可移动赋值 (MoveAssignable)

目录

[编辑] 成员类型

成员类型 定义
native_handle_type (可选*) 由实现定义[编辑]

[编辑] 成员类

表示线程的 id
(公开成员类) [编辑]

[编辑] 成员函数

构造新的 thread 对象
(公开成员函数) [编辑]
析构线程对象,必须合并或分离底层线程
(公开成员函数) [编辑]
移动线程对象
(公开成员函数) [编辑]
观察器
检查线程是否可合并,即潜在运行于并行上下文之中
(公开成员函数) [编辑]
返回线程的 id
(公开成员函数) [编辑]
返回底层的实现定义的线程句柄
(公开成员函数) [编辑]
返回实现支持的并发线程数
(公开静态成员函数) [编辑]
操作
等待线程完成其执行
(公开成员函数) [编辑]
容许线程从线程句柄独立开来执行
(公开成员函数) [编辑]
交换两个 thread 对象
(公开成员函数) [编辑]

[编辑] 非成员函数

特化 std::swap 算法
(函数) [编辑]

[编辑] 参阅

(C++20)
支持自动合并和取消的 std::thread
(类) [编辑]