get_id — this_thread::get_id

get_id — this_thread::get_id (현재 스레드 ID)

std::this_thread::get_id현재 스레드의 id를 반환해요. C++11에서 도입됐어요. <thread> 헤더에 있어요.

출처: cppreference

본문

// <thread> 헤더, C++11
std::thread::id get_id() noexcept;

매개변수

(없음)

반환 값

현재 스레드의 id.

사용 예

#include <thread>
#include <iostream>
#include <syncstream>

std::thread::id main_id = std::this_thread::get_id();
std::cout << "main thread id: " << main_id << '\n';

void worker() {
    std::thread::id my_id = std::this_thread::get_id();
    std::osyncstream(std::cout) << "worker id: " << my_id << '\n';
}

std::thread t(worker);
t.join();

특징

  • 각 스레드마다 고유한 std::thread::id를 가져요.
  • std::thread::id는 비교(==, <)·해시가 가능하고, <<로 출력할 수 있어요.
  • 스레드가 어느 것인지 로그·디버깅·매핑에 유용해요.
// 임의의 스레드의 id와 비교
std::thread::id tid = std::this_thread::get_id();
if (tid == std::thread::id{}) {
    // 기본 id (아무 스레드도 아님)
}

get_id는 실행 중인 스레드가 누구인지 식별하거나, 특정 스레드에서만 특정 동작을 하게 할 때 사용해요.

더 알아보기 (Learn more)

cppreference