我正试图在java中编写生产者 - 消费者模式。我是通过一系列不同的连接连接到许多服务器的网络客户端。服务器产生不同的'工作'数据包,所有这些数据包都被放入一个阻塞队列。我想要做的就是阻止我的消费者,只有特定类型的工作包才能交付给特定的消费者。消费者过滤的生产者 - 消费者阻塞队列
实施例:
- 阻挡队列填充有三种不同类型的工作包对象:A,B,C
- 两个消费者正在等待工作包对象。消费者1只想要类型A,而消费者2只需要类型B或C
java.util中是否存在一些标准类...还是必须滚动我自己的类?另外,如果需要,最好的方法是什么?
在此先感谢!
安德鲁Klofas
您需要阻塞队列和消费者之间的某些东西将数据包“路由”到正确的消费者。或者,您可以为每个使用者分配自己的阻塞队列,并根据数据包类型填充队列。 – 2012-07-10 22:43:06
为什么要使用一个阻塞队列?还是存在着不确定数量的“工作类型”? – 2012-07-10 22:44:15
有不确定数量的类型。我想要做的是有一些专门的消费者对特定的工作类型做出反应,然后是一个全能的消费者。 – 2012-07-10 22:46:51