我正在经历 c++ 0x (C++11) 中对多线程的新支持。
所以每个线程都有一个 std::thread:id 类型的唯一标识符。
考虑以下示例程序:
void hello_world()
{
std::cout<<"hello_world \n";
}
int main()
{
std::cout<<"Main thread id is "<<std::this_thread::get_id()<<"\n";
std::thread t(hello_world);
std::cout<<"Child thread id is ";
std::cout<<t.get_id()<<"\n";
t.join();
}
我得到了一个示例输出,如下所示:
主线程 ID 为 140502917359424
子线程 ID 为 140502900623104
你好世界
我的示例输出中主线程的线程 ID 大于子线程 ID。
线程 ID 是否完全独立于它们的启动时间?
如果不是:有没有办法区分线程 T1 是否比线程 T2 早于线程 ID 启动?