我正試圖在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