在 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 完成。
如何管理线程:
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 完成。