「std::thread::get id」の版間の差分

提供: C++入門
移動: 案内検索
(ページの作成:「std::thread::get_id とは、std::threadのスレッドのスレッド識別子(スレッドID, std::thread::id型)を返します。 '''読み方''' ;[[std::t...」)
 
(相違点なし)

2014年1月18日 (土) 00:55時点における最新版

std::thread::get_id とは、std::threadのスレッドのスレッド識別子(スレッドID, std::thread::id型)を返します。

読み方

std::thread::get_id
えすてぃーでぃー すれっど げっと あいでぃー

概要

スレッド側でスレッドIDを取得するには、std::this_thread::get_id()を使用します。

std::thread::get_id()の例

ソースコード std_thread_get_id1.cpp

#include <iostream>
#include <thread>
#include <exception>
using namespace std;
void
do_worker1 () {
        for (int i = 0; i < 5; i++) {
                std::cout << __PRETTY_FUNCTION__ << std::endl;
                std::this_thread::sleep_for(std::chrono::milliseconds(10));
        }
}
void
do_worker2 () {
        for (int i = 0; i < 5; i++) {
                std::cout << __PRETTY_FUNCTION__ << std::endl;
                std::this_thread::sleep_for(std::chrono::milliseconds(10));
        }
}
 
int
main (int argc, char *argv[]) {
        try {
#if 0
                std::thread t1;
                std::thread t2;
#endif
                std::thread t1(do_worker1);
                std::thread t2(do_worker2);
                cout << t1.get_id() << endl;
                cout << t2.get_id() << endl;
                t1.join();
                t2.join();
        } catch (std::exception &ex) {
                std::cerr << ex.what() << std::endl;
        }
        return (0);
}

コンパイル

g++49 -std=c++11 -I/usr/local/lib/gcc49/include/c++/ \
-Wl,-rpath=/usr/local/lib/gcc49  std_thread_get_id1.cpp -o std_thread_get_id1

実行例

% ./std_thread_get_id1
void do_worker1()void do_worker2()
0x28404900
0x28404c00
 
void do_worker1()
void do_worker2()
void do_worker1()
void do_worker2()
void do_worker1()
void do_worker2()
void do_worker1()
void do_worker2()

関連項目

std::thread メンバ関数
関数 説明
メンバ関数
std::thread::thread コンストラクタ。threadオブジェクトを作成します。
std::thread::~thread スレッドがjoinかdetachされている必要があります。スレッドオブジェクトを破棄します。
std::thread::operator= スレッドオブジェクトをmoveします。
オブザーバー
std::thread::joinable スレッドが合流可能であるかチェックします。
std::thread::get_id スレッドのIDを返します。
std::thread::native_handle スレッドハンドルを返します。
std::thread::hardware_concurrency 実装によってサポートされる同時スレッド数を返します。
操作
std::thread::join スレッドの終了を待ちます。
std::thread::detach スレッドハンドルから独立して実行するスレッドを許可します。
std::thread::swap スワップ
非メンバ関数
std::swap スワップ
カレントスレッドの管理
std::this_thread::yield_id 処理系に再スケジュールの機会を与えます。
std::this_thread::get_id スレッドIDを返します。
std::this_thread::sleep_for 指定した時間、現在のスレッドの実行を停止します。
std::this_thread::sleep_until 指定した時刻まで、現在のスレッドの実行を停止します。