parrent线程离开其块后分离的std :: thread的情况

时间:2017-10-19 07:12:04

标签: c++ multithreading stdthread

我已经搜索过,但我无法找到这个问题的确切答案。 例如,如果我们有这样的代码块:

{
  std::thread thread_1(.....);
  thread_1.detach();
  ...
}

当thread_1仍然有效时,父线程离开此代码块后会发生什么。

1 个答案:

答案 0 :(得分:0)

案例1:我在一个非常糟糕的操作系统上运行它,或者可能非常原始,然后你已经分离了 {来自main主题的{1}},因此它适用于main主题的独立。因此,即使主线程退出,只要它不依赖于全局范围内的任何变量,它将继续运行,它将是杂散线程。

案例2:这是在现代操作系统上运行的,我们可以说它的行为与案例1 中的行为相同,但现代操作系统看到丧偶线程将立即杀死 并清理它,释放资源 抓住

希望这有用,如果不正确请在下面的评论中提出更正...谢谢