繁体   English   中英

C ++提升线程重用线程

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM