第2章スレッド

基本的なスレッドマネージャ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つのスレッドをサポートするために見つけることができます。

 

おすすめ

転載: www.cnblogs.com/hebust-fengyu/p/12077200.html