小编kik*_*iki的帖子

C++ 11:如果你没有为std :: thread调用join()会发生什么

给出如下:

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如果你想在线程上有某种类型的超时行为,那么简单地不调用线程是否安全?

c++ multithreading c++11 stdthread

29
推荐指数
2
解决办法
1万
查看次数

标签 统计

c++ ×1

c++11 ×1

multithreading ×1

stdthread ×1