首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java中的生产者-消费者-多个消费者

Java中的生产者-消费者-多个消费者
EN

Stack Overflow用户
提问于 2013-02-25 10:15:25
回答 1查看 752关注 0票数 2

我在Java中有一个具有多个消费者的生产者-消费者模型。我在生产者和消费者之间传递一个对象,这个对象有一个变量,我们称它为"name“。

现在,这个名称可以是A、B或C。如果值是A,则一个消费者将从队列中取出它并对其执行某些操作。如果该值为B,则不同的使用者会将其从同一队列中取出,并执行其他操作。如果该值为C,则第三个消费者也会执行同样的操作。

我的问题是如何实现这一点。我目前的理论如下(用伪代码表示):

代码语言:javascript
复制
// This is code for each consumer
pull item off the queue
check if item.name is right for this consumer (A, B, or C)
if so, send it to consume()
else, put it back on the queue

这样的东西可以工作吗,或者它会对我的线程同步造成严重破坏吗?如果它不能工作,我应该使用什么模型来实现它?

EN

回答 1

Stack Overflow用户

发布于 2013-02-25 10:27:03

最简单的方法是在消息发布时定义消息头。然后,您可以有多个消费者,每个消费者都有唯一的MessageSelectors,用于查找特定的消息头。这样,只有正确的消费者才能获得消息,而如果错误的消费者得到消息,您就不必担心重新发布消息(这效率非常低,并且在加载的系统中有大量消息在系统中工作,这是不好的)。

http://docs.oracle.com/javaee/1.3/jms/tutorial/1_3_1-fcs/doc/prog_model.html

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

https://stackoverflow.com/questions/15059109

复制
相关文章

相似问题

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