基本的なスレッドマネージャ2.1
1. Doが起動モードのスレッドの完了を待ちません
書式#include <iostreamの> の#include <スレッド> の#include <CStringの> 名前空間stdを使用。 無効印刷(){ coutの<< "ハローワールド" <<てendl; } int型のmain(){ スレッドT(印刷)。 t.detach(); 0を返します。 } // ------运行结果------------ / * PS E:\デスクトップ> G ++ -std = C ++ 11 \ 1.cpp。 PS E:\デスクトップ> PS E:\デスクトップ> * /
デーモンスレッドと同様のプロセスでUNIXスレッドの開始、スレッドは(UNIXデーモンスレッドの概念を指し、そして一般スレッドデーモン別のスレッドと呼ばれる)に分離されます。
待機中のスレッドの道を完了2
書式#include <iostreamの> の#include <スレッド> の#include <CStringの> 名前空間stdを使用。 無効印刷(){ coutの<< "ハローワールド" <<てendl; } int型のmain(){ スレッドT(印刷)。 IF(t.joinable()) t.join(); 0を返します。 } // ----------------运行结果------------------- / * PS E:\デスクトップ> G ++ - STD = C ++ 11 \ 1.cpp。 PS E:\デスクトップ> ハローワールド * /
スレッド関数に2.2域パラメータ
書式#include <iostreamの> の#include <スレッド> の#include <CStringの> 名前空間stdを使用。 ボイドプリント(文字列s){ COUT << S << ENDL。 } int型のmain(){ スレッドT(プリント、 "Hello World"の)。 IF(t.joinable()) t.join(); 0を返します。 }
行う際の送信パラメータは、構築されたオブジェクトのスレッドに送信することができます。
2.3転送オブジェクト所有権
対象となるスレッドオブジェクトは、通常のフォームT1 = STD :: mvoe(t)として用いてもよいし、所有権の移転です。
2.4実行時のスレッド数を選択します
スレッドの切り替えに起因するには、ハードウェアスレッドの数を考慮することは、マルチスレッド並列プログラミングを使用した場合にも、切断されたスレッドを作るように、プロセッサのサポートしている場合のみ1スレッド、我々のコードのオープン複数のスレッド、だからリソースを消費することです我々は、スレッドに応じたスレッドの数:: hardware_concurrencyを()得ることができるので、それは、多くの時間を無駄に宣言します。
書式#include <iostreamの> の#include <スレッド> の#include <CStringの> 名前空間stdを使用。 INTメイン(){ COUT <<スレッド:: hardware_concurrency()<< ENDL。 0を返します。 } // ------------运行结果------ / * PS E:\デスクトップ> G ++ -std = C ++ 11 \ 1.cpp。 PS E:\デスクトップ> 4 * /
マイコンピュータはそうでは約4を選択しようとすると、マルチスレッドの数を入れ、4つのスレッドをサポートするために見つけることができます。