std::thread
提供: cppreference.com
| ヘッダ <thread> で定義
|
||
| class thread; |
(C++11以上) | |
クラス thread は実行のスレッドを表します。 スレッドを使用すると複数の関数を並行的に実行できます。
スレッドオブジェクトが構築されるとすぐに (OS のスケジューリング遅延はありますが) 紐付けられたスレッドの実行が開始され、コンストラクタの引数として提供されたトップレベル関数が起動されます。 このトップレベル関数は戻り値が無視され、例外を投げて終了した場合は std::terminate が呼ばれます。 std::promise や共有している変数を通せば呼び出し元に戻り値や例外を伝えることができます (同期が必要な場合があります。 std::mutex および std::atomic を参照してください)。
std::thread オブジェクトは何のスレッドも表していない状態になることもあります (デフォルト構築後、ムーブ後、 detach 後または join 後)。 また、実行のスレッドはいずれの thread オブジェクトとも紐付けられていない場合もあります (detach 後)。
2つの std::thread オブジェクトが同じ実行のスレッドを表すことはありません。 std::thread は MoveConstructible かつ MoveAssignable ですが、 CopyConstructible でも CopyAssignable でもありません。
目次 |
[編集] メンバ型
| メンバ型 | 定義 |
native_handle_type(オプション)
|
処理系定義 |
[編集] メンバクラス
| スレッドの id を表します (パブリックメンバクラス) |
[編集] メンバ関数
| 新しいスレッドオブジェクトを構築します (パブリックメンバ関数) | |
| スレッドオブジェクトを破棄します。 スレッドは join または detach されていなければなりません (パブリックメンバ関数) | |
| スレッドオブジェクトをムーブします (パブリックメンバ関数) | |
観察 | |
| スレッドが合流可能かどうか、すなわち潜在的に並列文脈で実行中かどうか調べます (パブリックメンバ関数) | |
| スレッドの id を返します (パブリックメンバ関数) | |
| ベースとなる処理系定義のスレッドハンドルを返します (パブリックメンバ関数) | |
| 処理系がサポートしている並行スレッド数を返します (パブリック静的メンバ関数) | |
操作 | |
| スレッドの実行終了を待ちます (パブリックメンバ関数) | |
| スレッドを thread オブジェクトから独立して実行できるようにします (パブリックメンバ関数) | |
| 2つの thread オブジェクトを入れ替えます (パブリックメンバ関数) | |
[編集] 非メンバ関数
| (C++11) |
std::swap アルゴリズムの特殊化 (関数) |

