C++获取线程标识符id(线程号)
头文件:<thread>
方法1:获取指定线程的线程id std::thread::id
方法2:获取当前线程的线程id std::this_thread::get_id()
案例解析:
void foo()
{
while (1) {
std::cout << "std::this_thread::get_id is : " << std::this_thread::get_id() << std::endl;
sleep(1);
}
}
int main()
{
std::thread first(foo); // thread first
std::thread second(foo); // thread second
std::cout << "std::thread::id is : " << first.get_id() << std::endl;
first.join(); // pauses until first finishes
second.join(); // pauses until second finishes
return 0;
}
结果输出:
[root@localhost]# g++ main.cpp -o main -lpthread
[root@localhost]# ./main
std::thread::id is : 140445889021696
std::this_thread::get_id is : 140445889021696
std::this_thread::get_id is : 140445880628992
std::this_thread::get_id is : 140445889021696
std::this_thread::get_id is : 140445880628992
std::this_thread::get_id is : 140445889021696
std::this_thread::get_id is : 140445880628992
^C
[root@localhost]#
浙公网安备 33010602011771号