名前空間
変種
操作

std::thread

提供: cppreference.com
< cpp‎ | thread
 
 
スレッドサポートライブラリ
スレッド
thread
(C++11)
this_thread 名前空間
(C++11)
(C++11)
(C++11)
相互排他
(C++11)
汎用ロック管理
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
(C++11)
(C++11)
条件変数
(C++11)
フューチャー
(C++11)
(C++11)
(C++11)
(C++11)
 
 
ヘッダ <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::threadMoveConstructible かつ MoveAssignable ですが、 CopyConstructible でも CopyAssignable でもありません。

目次

[編集] メンバ型

メンバ型 定義
native_handle_type 処理系定義

[編集] メンバクラス

スレッドの id を表します
(パブリックメンバクラス) [edit]

[編集] メンバ関数

新しいスレッドオブジェクトを構築します
(パブリックメンバ関数) [edit]
スレッドオブジェクトを破棄します。 スレッドは join または detach されていなければなりません
(パブリックメンバ関数) [edit]
スレッドオブジェクトをムーブします
(パブリックメンバ関数) [edit]
観察
スレッドが join 可能かどうか調べます
(パブリックメンバ関数) [edit]
スレッドの id を返します
(パブリックメンバ関数) [edit]
ベースとなる処理系定義のスレッドハンドルを返します
(パブリックメンバ関数) [edit]
処理系がサポートしている並行スレッド数を返します
(パブリック静的メンバ関数) [edit]
操作
スレッドの実行終了を待ちます
(パブリックメンバ関数) [edit]
スレッドをスレッドオブジェクトから独立して実行できるようにします
(パブリックメンバ関数) [edit]
2つのスレッドオブジェクトを入れ替えます
(パブリックメンバ関数) [edit]

[編集] 非メンバ関数

std::swap アルゴリズムの特殊化
(関数テンプレート) [edit]