std::thread
出自cppreference.com
| 在標頭 <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 對象 (公開成員函數) | |
| 析構線程對象,必須合併或分離底層線程 (公開成員函數) | |
| 移動線程對象 (公開成員函數) | |
觀察器 | |
| 檢查線程是否可合併,即潛在運行於並行上下文之中 (公開成員函數) | |
| 返回線程的 id (公開成員函數) | |
| 返回底層的實現定義的線程句柄 (公開成員函數) | |
| 返回實現支持的並發線程數 (公開靜態成員函數) | |
操作 | |
| 等待線程完成其執行 (公開成員函數) | |
| 容許線程從線程句柄獨立開來執行 (公開成員函數) | |
交換兩個 thread 對象 (公開成員函數) | |
非成員函數
(C++11) |
特化 std::swap 算法 (函數) |
參閱
(C++20) |
支持自動合併和取消的 std::thread (類) |