在 closuer join() 线程 C++ 之前更新 joinable()

Update joinable() before closuer join() thread C++

如何管理线程:

thread th(foo);

while(th.joinable())
{
  // thread foo is active;
  // some printing from foo function for example
}

th.join();

这个 while 是无限的,因为 th.joinable() 始终为真且不更新。这个问题是什么原因,如何解决?

正如 Joachim 指出的那样,只要线程尚未加入(或默认构造),joinable() 就为真。

据我了解您的要求(根据您的评论),您可以直接调用 th.join() 而无需 while 循环。这会阻塞直到 foo 完成。