スレッドの使い方
C++のstd::threadはスレッドを作成して管理するための標準ライブラリクラスです。 std::threadクラスを使用して、新しいスレッドを作成して指定された関数やメンバー関数を同時に実行することができます。以下にstd::threadの使用方法を示します。
- ヘッダーファイルのインポート:#include
- スレッドを作成し関数を呼び出す:
- スレッドが実行するコード
- メンバ関数ポインタとオブジェクトを使用するスレッドを作成して実行します。
- クラス MyClass {
public:
void myMethod() {
// スレッド実行コード
}
};MyClass object;
std::thread th(&MyClass::myMethod, &object);
// スレッドを作成し、myMethod関数を呼び出す - スレッドの実行が完了するまで待機:
- myThread.join(); // スレッドの実行を待つ
- スレッド ID を取得するには、
- スレッド ID を取得する threadID = myThread.get_id();
スレッド作成後は、join()でスレッドの実行完了を待機する必要があることに注意。さもないとプログラムがメインスレッドの終了時に強制終了してしまう可能性がある。また、detach()メソッドを使用してスレッドをメインスレッドから切り離し、バックグラウンドで独立して動作させることもできるが、スレッドのライフサイクルとリソース管理には注意が必要。