在 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()?