在 C++ 中,我有这个示例实现:
#include <thread>
#include <iostream>
void doSomeWork( void )
{
std::cout << "hello from thread..." << std::endl;
while(true)
{
printf("Getting inside doSomeWork\n");
sleep(1);
}
}
int main( int argc, char *argv[] )
{
std::thread t( doSomeWork );
t.join();
processing();
return 0;
}
void processing()
{
while(true)
{
printf("Getting inside processing\n");
sleep(1);
}
}
我有一个问题,doSomeWork() 一直在做事情,它阻止了 processing()。我认为线程是异步的,所以当它处于休眠状态时,我可以做其他事情。我的问题是如何在 doSomeWork() 中休眠并产生其他线程,然后恢复 doSomework()?
最佳答案
线
t.join();
暂停调用线程,直到线程 t
完成(当 doSomeWork()
)返回时。
将您的代码更改为
std::thread t( doSomeWork );
processing();
t.join();
如果您希望 processing()
和 doSomeWork()
并行运行。
关于c++ - 等待其他线程继续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15027363/