命名空间
变体
操作

std::thread

来自 cppreference.cn
< 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;
(since C++11)

thread 表示 单个执行线程。线程允许并发执行多个函数。

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

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

没有两个 std::thread 对象可以表示相同的执行线程;std::thread 不是 CopyConstructibleCopyAssignable,虽然它是 MoveConstructibleMoveAssignable

目录

[编辑] 成员类型

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

[编辑] 成员类

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

[编辑] 成员函数

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

[编辑] 非成员函数

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

[编辑] 参见

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