Any*_*orn 3 c++ multithreading boost
我想要完成这样的事情:
thread t; // create/initialize thread
t.launch(); // launch thread.
t.wait(); // wait
t.launch(); // relaunch the same thread
Run Code Online (Sandbox Code Playgroud)
如何使用boost线程来实现这样的东西?本质上,我需要持久的重新启动线程.
我想避免工作队列,因为在我的情况下实现有点困难
谢谢
您只需使线程在循环中运行即可.它尝试从队列中获取"工作"单元,执行工作,然后返回队列.当队列为空时,它等待.
然后从另一个线程中,您可以将工作项插入队列,以便线程将它们执行.
再次阅读你的问题,你是说你希望你的主线程通知工作线程开始工作,但主线程必须立即开始等待工人完成?这意味着一次只运行一个线程.没有必要这样做.线程专为并发执行而设计.
假设这不是你想要的,那么我想知道什么比运行队列的简单工作线程更简单.线程正在工作或等待.所以你需要一些允许主人和工人之间进行通信的数据结构,这样工人可以等待工作项到达,主人可以发送工作项,这将唤醒工人,然后工作项完成,工人等待另一个.
| 归档时间: |
|
| 查看次数: |
5185 次 |
| 最近记录: |