定义于头文件
<thread>
|
||
class thread;
|
(C++11 起) | |
类 thread
表示单个执行线程。线程允许多个函数并发执行。
紧接着关联的线程对象构造,线程开始执行(为任何 OS 调度延迟悬挂),始于作为构造函数参数提供的顶层函数。忽略顶层函数的返回值,而且若它以抛异常终止,则调用 std::terminate 。顶层函数可以通过 std::promise 或修改共享变量(这可能要求同步,见 std::mutex 与 std::atomic )交流其返回值或异常到调用方。
std::thread
对象亦可在不表示任何线程的状态(默认构造、被移动、 detach 或 join 后),而执行线程可以不关联到任何 thread
对象( detach 后)。
没有两个 std::thread
对象会表示同一执行线程; std::thread
不可复制构造 (CopyConstructible
) 或可复制赋值 (CopyAssignable
) ,尽管它可移动构造 (MoveConstructible
) 且可移动赋值 (MoveAssignable
) 。
目录 |
成员类型 | 定义 |
native_handle_type
|
实现定义 |
表示线程的 id (公开成员类) |
构造新的 thread 对象 (公开成员函数) |
|
析构 thread 对象,必须合并或分离底层线程 (公开成员函数) |
|
移动 thread 对象 (公开成员函数) |
|
观察器 |
|
检查线程是否可合并,即潜在地运行于平行环境中 (公开成员函数) |
|
返回线程的 id (公开成员函数) |
|
返回底层实现定义的线程句柄 (公开成员函数) |
|
[静态]
|
返回实现支持的并发线程数 (公开静态成员函数) |
操作 |
|
等待线程完成其执行 (公开成员函数) |
|
容许线程从线程句柄独立开来执行 (公开成员函数) |
|
交换二个 thread 对象 (公开成员函数) |
(C++11)
|
特化 std::swap 算法 (函数模板) |