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는 실행 중인 스레드가 누구인지 식별하거나, 특정 스레드에서만 특정 동작을 하게 할 때 사용해요.