C++ thread_id 是什么数据类型,它可以分配给变量吗?
C++ What datatype is a thread_id and can it assigned to a variable?
我很好奇线程是什么数据类型,它是否可以分配给变量并且 advisable/useful 这样做。
使用 #include <thread>
库。
一个 std::thread
是一个 class 代表一个单独的执行线程。
它本身不是操作系统线程。它只是代表它。
您可以创建线程类型的对象:
thread t1(foo);
你可以移动构造这样一个对象,你可以移动分配这样一个对象:
thread t2,t3;
t3=thread(foo); // move assignement t3 start function foo() now
t2=move(t3); // t2 takes over what t3 was representing
但是你不能复制线程:
//t2=t3; // not possible to copy threads; you have to move them
线程的标识可以通过类型 thread::id
type (implementation dependent type). However there's also a thread::native_handle_type
returned by native_handle()
的值来完成,该类型的值可以(如果实现支持)return 可以用于 OS 特定功能的标识符
我很好奇线程是什么数据类型,它是否可以分配给变量并且 advisable/useful 这样做。
使用 #include <thread>
库。
一个 std::thread
是一个 class 代表一个单独的执行线程。
它本身不是操作系统线程。它只是代表它。
您可以创建线程类型的对象:
thread t1(foo);
你可以移动构造这样一个对象,你可以移动分配这样一个对象:
thread t2,t3;
t3=thread(foo); // move assignement t3 start function foo() now
t2=move(t3); // t2 takes over what t3 was representing
但是你不能复制线程:
//t2=t3; // not possible to copy threads; you have to move them
线程的标识可以通过类型 thread::id
type (implementation dependent type). However there's also a thread::native_handle_type
returned by native_handle()
的值来完成,该类型的值可以(如果实现支持)return 可以用于 OS 特定功能的标识符