c++标识线程
线程ID类型为std::thread::id,它有两种方式获取。
-
直接通过std::thread对象的成员函数get_id()来获取。如果thread对象没有与任何执行线程相关联,get_id()将返回std::thread::id对象,它按照默认的构造方式生成,表示线程不存在(实际测试时,直接core dumped)。
-
还可以通过在当前线程中调用std::this_thread::get_id()获取。函数定义在< thread >中。
void func() {cout << this_thread::get_id() << endl; }int main() {thread t1{func};cout << t1.get_id() << endl;t1.join(); }
线程id是唯一的,如果两个值不同就代表两个不同线程,或者某线程不存在(实际测试,不存在时,编译会报错)