<thread>ヘッダはマルチスレッド制御に関するクラス・関数を定義する。
このヘッダでは、以下の標準ヘッダをインクルードする:
<compare>(C++20)
| 名前 | 説明 | 対応バージョン |
|---|---|---|
thread |
スレッド クラス(class) | C++11 |
thread::id |
スレッド識別子 クラス(class) | C++11 |
this_thread |
現スレッドの制御機能を提供する名前空間 (namespace) | C++11 |
jthread |
停止要求を扱ったり、自動でjoinする機能を持つスレッド クラス (class) |
C++20 |
備考
- このヘッダは、フリースタンディング処理系ではホスト処理系と同じ内容を提供するか、あるいはインクルードしても何の効果も持たないかのいずれかである。
- プログラムが複数のスレッドを実行できる場合、
__STDCPP_THREADS__マクロが整数値1として定義される。
バージョン
言語
- C++11
処理系
- GCC: 4.6.3 ✅, 4.7.0 ✅ GCC/pthread環境でスレッドサポートを有効化するには -pthread オプション指定が必要。(GCC 4.7.0で確認)
- Visual C++: 2012 ✅, 2013 ✅, 2015 ✅
参照
- The cpp-threads Archives
- C++11の策定時に、C++標準の言語とライブラリに並行プログラミングの提案を行うため使用されていたメーリングリストのアーカイブである。
- P2051R0 C++ Standard Library Issues to be moved in Prague
- LWG Issue 1097. #define
__STDCPP_THREADS- C++11で、フリースタンディング処理系におけるこのヘッダの扱いが規定され、複数スレッドを実行できる場合に定義されるマクロが追加された。このマクロは最終的に、このヘッダではなく予定義マクロ
__STDCPP_THREADS__として規定された
- C++11で、フリースタンディング処理系におけるこのヘッダの扱いが規定され、複数スレッドを実行できる場合に定義されるマクロが追加された。このマクロは最終的に、このヘッダではなく予定義マクロ