namespace std {
class jthread {
public:
using id = thread::id;
};
}
概要
スレッド識別子。std::thread::id
の別名。
実行のスレッドに対して一意なthread::id
が対応づけられる。デフォルト構築されたid
はいかなるスレッドとも対応付けられない(ポインタ型におけるnullptr
のようなもの)。
終了したスレッドを表す識別子の値は、再利用される可能性がある。
例
#include <iostream>
#include <thread>
int main()
{
std::jthread {[]{
const std::jthread::id background_tid = std::this_thread::get_id();
std::cout << "background=" << background_tid << std::endl;
}};
const std::jthread::id main_tid = std::this_thread::get_id();
std::cout << "main=" << main_tid << std::endl;
}
xxxxxxxxxx
#include <iostream>
#include <thread>
int main()
{
std::jthread {[]{
const std::jthread::id background_tid = std::this_thread::get_id();
std::cout << "background=" << background_tid << std::endl;
}};
const std::jthread::id main_tid = std::this_thread::get_id();
std::cout << "main=" << main_tid << std::endl;
}
出力例
background=140029246985984
main=140029246990144
バージョン
言語
- C++20
処理系
- Clang:
- GCC: 10.2.0 ✅
- Visual C++: ??