C++ std::threadの使い方:基本と実践
std::threadは、C++11の標準ライブラリであるクラスで、スレッドの作成と管理に使用されます。std::threadを使用して、新しいスレッドを作成し、呼び出し可能オブジェクト(関数、関数オブジェクト、またはラムダ式)をスレッドに渡すことができます。
std::threadを使用するときは、ヘッダーファイルを含める必要があり、スレッドオブジェクトはコンストラクタを使用して初期化することができます。例えば:
#include <iostream>
#include <thread>
void threadFunc() {
std::cout << "Hello from thread" << std::this_thread::get_id() << std::endl;
}
int main() {
std::thread threadObj(threadFunc);
// 等待线程执行完成
threadObj.join();
std::cout << "Main thread" << std::this_thread::get_id() << " exiting..." << std::endl;
return 0;
}
上記の例では、std::threadを使用して、threadObjという名前のスレッドオブジェクトを作成し、関数threadFuncを呼び出し可能なオブジェクトとしてこのスレッドに渡しました。その後、メインスレッドでjoin()メソッドを呼び出し、スレッドの実行が完了するのを待ちます。最後に、メインスレッドのIDと終了情報が出力されます。
join()メソッド以外にも、detach()メソッドを使用してスレッドを分離し、スレッドが独立して動作できるようにすることができます。std::threadを使用する際は、スレッドの安全性とリソース管理に注意する必要があります。