[英]C++ boost thread reusing threads
我想要完成这样的事情:
thread t; // create/initialize thread
t.launch(); // launch thread.
t.wait(); // wait
t.launch(); // relaunch the same thread
如何使用boost线程来实现这样的东西? 本质上,我需要持久的重新启动线程。
我想避免工作队列,因为在我的情况下实现有点困难
谢谢
您只需使线程在循环中运行即可。 它尝试从队列中获取“工作”单元,执行工作,然后返回队列。 当队列为空时,它等待。
然后从另一个线程中,您可以将工作项插入队列,以便线程将它们执行。
再次阅读你的问题,你是说你希望你的主线程通知工作线程开始工作,但主线程必须立即开始等待工人完成? 这意味着一次只运行一个线程。 没有必要这样做。 线程专为并发执行而设计。
假设这不是你想要的,那么我想知道什么比运行队列的简单工作线程更简单。 线程正在工作或等待。 所以你需要一些允许主人和工人之间进行通信的数据结构,这样工人可以等待工作项到达,主人可以发送工作项,这将唤醒工人,然后工作项完成,工人等待另一个。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.