std::thread
出自 cppreference.com
| 定義於標頭檔 <thread> |
||
| class thread; |
(C++11 起) | |
thread 類別代表單一執行緒。執行緒允許同時執行多個函式。
當相關聯的執行緒物件建構完成時,執行緒會立即開始執行(需等待作業系統排程延遲),並從作為建構函式參數提供的頂層函式開始。頂層函式的回傳值會被忽略;若其因拋出例外而終止,則會呼叫 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 物件(公開成員函式) | |
| 解構執行緒物件,基礎執行緒必須已 join 或 detach (公開成員函式) | |
| 移動執行緒物件 (公開成員函式) | |
觀察器 | |
| 檢查執行緒是否可 join,即是否可能在並行環境中執行 (公開成員函式) | |
| 回傳執行緒的 id (公開成員函式) | |
| 回傳底層由實作定義的執行緒控制代碼 (handle) (公開成員函式) | |
| 回傳實作支援的併發執行緒數量 (公開靜態成員函式) | |
作業 (Operations) | |
| 等待執行緒完成其執行 (公開成員函式) | |
| 允許執行緒脫離執行緒控制代碼獨立執行 (公開成員函式) | |
| 交換兩個執行緒物件 (公開成員函式) | |
[編輯] 非成員函式
| (C++11) |
特化 std::swap 演算法 (函式) |
[編輯] 參見
| (C++20) |
std::thread 具有自動 join 與取消支援 (類別) |