Namespaces
Variants

std:: thread

From cppreference.net
Concurrency support library
Threads
thread
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
定義ヘッダ <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 CopyConstructible でも CopyAssignable でもありませんが、 MoveConstructible および MoveAssignable ではあります。

目次

翻訳の説明: - 「Contents」を「目次」に翻訳しました - C++関連の専門用語(Member types、Member classes、Member functions、Observers、Operations、Non-member functions、See also)は原文のまま保持しました - HTMLタグ、属性、クラス名、IDなどは一切変更していません - 番号付けや構造も完全に保持しています

メンバー型

メンバー型 定義
native_handle_type ( オプション* ) 実装定義

メンバークラス

スレッドの id を表す
(public member class)

メンバー関数

新しい thread オブジェクトを構築する
(public member function)
threadオブジェクトを破棄する。基盤となるスレッドはjoinまたはdetachされていなければならない
(public member function)
threadオブジェクトを移動する
(public member function)
Observers
スレッドがjoin可能かどうかをチェックする(つまり、並列コンテキストで実行されている可能性があるか)
(public member function)
スレッドの id を返す
(public member function)
基盤となる実装定義のスレッドハンドルを返す
(public member function)
実装がサポートする並行スレッドの数を返す
(public static member function)
Operations
スレッドの実行が終了するのを待機する
(public member function)
スレッドがスレッドハンドルから独立して実行することを許可する
(public member function)
2つのthreadオブジェクトを交換する
(public member function)

非メンバー関数

std::swap アルゴリズムを特殊化
(関数)

関連項目

(C++20)
std::thread 自動結合とキャンセル機能をサポートする
(クラス)