std::thread main;
if (/*check code here*/)
{
main = std::thread(thread_hunt);
}
main.join();
如果未在 if 语句中初始化,此代码将在主线程加入时导致错误。
bool i=false;
std::thread main;
if (/*check code here*/)
{
main = std::thread(thread_hunt);
j=true;
}
if (j)
{
main.join();
}
代码运行良好,但是有没有更简单的方法可以实现这个目标?
最佳答案
您可以在线程对象上使用 joinable()
方法。
就您而言:
std::thread main;
if (/*check code here*/)
{
main = std::thread(thread_hunt);
}
if (main.joinable())
{
main.join();
}
关于multithreading - C++11中如何根据特定条件创建一个新线程并稍后加入它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31535321/