Java Multiple Producer和Java中具有单个队列的Multiple?

时间:2018-10-01 17:30:50

标签: java multithreading queue message-queue producer-consumer

我有三个生产者P1,P2,P3和三个使用单个共享队列的消费者。生产者P1将把X1,X2,X3放入/插入队列,并且只能由消费者C1消费,而不是其他消费者(C2,C3)消费。基本上,消费者C1应该只消费生产者P1插入的值。同样的规则适用于其他消费者。 C2-> P2和C3-> P3。 如何用Java解决这个问题。

1 个答案:

答案 0 :(得分:0)

这种方法最终会起作用的是将有一个像这样的类

class Envelope<S, T, M> {
    final S sender;
    final T topic;
    final M message;
    ...
};

所有发送的邮件都将被包装(像信封中的真实字母一样)并张贴到MailBox中。邮箱另一端的分派器将查看信封的主题/收件人字段,并应用必需的策略以在正确的上下文(线程)中传递给正确的收件人。

关于自己编写代码-我只是为了好玩而已。如果我很快需要一些东西,我会选择Akka,它已经具有所有必需的原语并使用它们。