【发布时间】:2017-11-18 08:18:54
【问题描述】:
我知道 join 方法会阻塞当前线程并等待任务完成。那么我怎么可能做这样的事情:
void task()
{
while(true)
{
//do stuff
}
}
int main()
{
std::thread t1(task);
t1.join();
std::cout << "HELLO" << std::endl;
}
执行此代码后仍会看到“HELLO”。为什么会这样?
【问题讨论】:
-
这里基本在问答中回答:stackoverflow.com/questions/3592557/…
-
您使用的是哪个编译器?我试过你的代码,我有一个使用 Clang 的无限循环。
-
g++ 无限循环
-
g++ 5.4.1 的无限循环
标签: c++ multithreading loops return infinite-loop