gpt4 book ai didi

java - Java 中的生产者-消费者——多个消费者

转载 作者:行者123 更新时间:2023-11-29 09:05:57 24 4
gpt4 key购买 nike

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

现在,这个名称可以是 A、B 或 C。如果值为 A,一个消费者会将其从队列中取出并对其进行处理。如果值为 B,则不同的消费者会将其从同一队列中取出并执行其他操作。如果值为 C,则第三个消费者执行相同的操作。

我的问题是如何实现它。我目前的理论如下(伪代码):

// 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

这样的事情会起作用吗,或者它会严重破坏我的线程同步吗?如果它不起作用,我应该使用什么模型来实现它?

最佳答案

最简单的方法是在发布消息时定义消息 header 。然后你可以有多个消费者,每个消费者都有独特的 MessageSelectors 来寻找特定的消息头。这样,只有正确的消费者才能收到消息,如果错误的消费者收到消息,您不必担心重新发布消息(这是非常低效的,并且在加载大量消息的系统上不会很好通过系统)。

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

关于java - Java 中的生产者-消费者——多个消费者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15059109/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com