C++ のスレッドは thread クラスで生成し、join で回収する2020年10月01日 12時51分38秒

C++11 からはスレッドのサポートが言語の一部になった。thread クラスのコンストラクタに実行を始める関数を渡すと、スレッドを生成され実行が始まる。また、join() で終了したスレッドを回収する。
% cat thread.cpp
#include <thread>
#include <iostream>

void print()
{
    std::cout << "THREAD" << std::endl;
}

int main()
{
    std::thread t( print );

    std::this_thread::sleep_for( std::chrono::seconds( 5 ) );

    t.join();

    std::cout << "DONE" << std::endl;
}
コンパイルして実行した結果。スレッドライブラリを使うので -lptherad が必要になる。
% c++ -std=c++11 thread.cpp -lpthread
% ./a.out 
THREAD
DONE
五秒間待った後に DONE が表示される。

前回次回

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2020/10/01/9301061/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。