我在 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
像这样的东西会起作用,还是会对我的线程同步造成严重破坏?如果它不起作用,我应该使用什么模型来实现它?