我有三个生产者P1,P2,P3和三个使用单个共享队列的消费者。生产者P1将把X1,X2,X3放入/插入队列,并且只能由消费者C1消费,而不是其他消费者(C2,C3)消费。基本上,消费者C1应该只消费生产者P1插入的值。同样的规则适用于其他消费者。 C2-> P2和C3-> P3。 如何用Java解决这个问题。
答案 0 :(得分:0)
这种方法最终会起作用的是将有一个像这样的类
class Envelope<S, T, M> {
final S sender;
final T topic;
final M message;
...
};
所有发送的邮件都将被包装(像信封中的真实字母一样)并张贴到MailBox
中。邮箱另一端的分派器将查看信封的主题/收件人字段,并应用必需的策略以在正确的上下文(线程)中传递给正确的收件人。
关于自己编写代码-我只是为了好玩而已。如果我很快需要一些东西,我会选择Akka
,它已经具有所有必需的原语并使用它们。