oli*_*dev 1 c++ multithreading thread-safety
在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);
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个问题,doSomeWork()继续做事情并阻止处理().我认为线程是异步的,所以当它正在睡觉时,我可以做其他事情.我的问题是如何在doSomeWork()中休眠并产生其他线程,然后恢复doSomework()?
这条线
t.join();
Run Code Online (Sandbox Code Playgroud)
暂停调用线程,直到线程t完成(when doSomeWork())返回.
将您的代码更改为
std::thread t( doSomeWork );
processing();
t.join();
Run Code Online (Sandbox Code Playgroud)
如果你想processing()和doSomeWork()并行运行.
| 归档时间: |
|
| 查看次数: |
293 次 |
| 最近记录: |