首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >消费者过滤的生产者-消费者阻塞队列

消费者过滤的生产者-消费者阻塞队列
EN

Stack Overflow用户
提问于 2012-07-10 22:40:40
回答 2查看 1.7K关注 0票数 1

我试图用java编写一个生产者-消费者模式。我是一个网络客户端,通过一系列不同的连接连接到许多服务器。服务器产生不同的“工作”包,这些包都被放入一个阻塞队列中。我想要做的是阻止我的消费者,因为只有特定类型的工作包才会被传递给特定的消费者。

示例:

  • 阻塞队列由三种不同类型的工作数据包对象填充: A、B、C。
  • 两个使用者正在等待工作数据包对象。消费者1只想要A型,消费者2只想要B型或C型

在java.util有标准的课程吗.还是我要自己上课?另外,如果需要的话,有什么最好的方法来做自己的事呢?

提前感谢!

安德鲁·克劳法斯

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-10 22:53:36

在java.util中没有这样做的标准方法,但是这里有一个简单的设计:

我假设A,B,C都实现了接口D,如果一个A与B和Cs一起被无序处理并不重要。

有一个“输入”BlockingQueue和一组排序使用者。这些使用者确定队列中对象的类型,并将它们输入到单独的特定类型的“输出”队列中,由您的实际工作人员从中获取。是否有一些约束要求您只有一个队列?

票数 2
EN

Stack Overflow用户

发布于 2012-07-11 20:05:13

您可以使用标准JMS获得此行为。您的生产者创建放置在JMS主题上的消息。使用者使用过滤订阅订阅主题:这样,订阅服务器X只获得X类型的消息。(有关API接口订阅的更多信息)

持久订阅者将获得您对所覆盖的每个订阅者排队消息的要求。

这是一个酒吧/子模特。

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

https://stackoverflow.com/questions/11423081

复制
相关文章

相似问题

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