首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生产者和消费者优化

生产者和消费者优化
EN

Stack Overflow用户
提问于 2017-08-10 04:19:47
回答 1查看 55关注 0票数 0

我正在用Qt编写一个具有OnReceive(整数值)事件的C++程序。它捕获整数值并将其转换为std::push_back。在另一个工作线程上,我可以访问这个向量,我可以设置一个信号量来等待20个值,然后我就可以处理它们了。

我想做一些优化。

我的问题是,如何将缓冲区或向量分割为0-4,5-10,11-19三个部分,例如,只要向量中有5个值(例如0到4),第二个worker就开始处理它们,而第一线程仍然继续获取其余的值。

通过这种方式,我想在我的线程之间有一个重叠。因此它们不需要以串行方式运行。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-08-19 21:41:55

使用无等待的环形缓冲区。

提升拥有one的声明

注意,它位于无锁文件夹中,但所有方法都声称是线程安全和无等待的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45599955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档