首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Boost:阻塞直到队列有了另一项

Boost:阻塞直到队列有了另一项
EN

Stack Overflow用户
提问于 2015-04-12 05:20:51
回答 1查看 2.5K关注 0票数 2

我使用Boost的无锁队列作为生产者-消费者队列。我希望每个使用者线程在队列为空时阻塞,当队列中有更多数据时醒来,或者任何生产者终止。但是Boost似乎没有提供阻塞的pop,只提供立即返回的pop

消费者应如何等待数据可用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-12 05:28:11

您正在寻找一个有趣的操作:您希望对一个无锁队列执行阻塞操作,这与您所使用的无锁队列正好相反。

使用互斥和条件变量使用普通阻塞队列。这很容易,而且这是一种更标准的方法。

实际上,在许多情况下,您会为无锁支付性能损失,因为您保证队列不包含任何锁,即使在最坏的情况下也是如此。

This question涵盖了这两种方法的许多优点和缺点。

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

https://stackoverflow.com/questions/29586230

复制
相关文章

相似问题

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