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

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

本文关键字:更新 joinable 线程 closuer join C++      更新时间:2023-10-16

如何像这样管理线程:

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

这个while是无限的,因为 th.joinable() 总是 true 并且不更新。什么原因以及如何解决这个问题?

正如 Joachim 指出的,只要线程尚未连接(或默认构造),joinable() 就是真的。

正如我了解您的要求(从您的评论中),您可以只调用 th.join() 而不使用 while-loop。这将阻止,直到 foo 完成。