给出如下:
void test()
{
std::chrono::seconds dura( 20 );
std::this_thread::sleep_for( dura );
}
int main()
{
std::thread th1(test);
std::chrono::seconds dura( 5 );
std::this_thread::sleep_for( dura );
return 0;
}
Run Code Online (Sandbox Code Playgroud)
main将在5秒后退出,那还会发生什么th1?
即使th1您定义的线程对象main超出范围并被销毁,它是否会继续执行直到完成?
th1完成执行后是否只是坐在那里或在程序终止时以某种方式清理?
如果线程是在函数中创建的,那么main- 在程序终止或函数超出范围之前,线程是否保持不变?
join如果你想在线程上有某种类型的超时行为,那么简单地不调用线程是否安全?