複数のコンシューマーを持つ Java のプロデューサー/コンシューマー モデルがあります。変数を持つプロデューサーとコンシューマーの間でオブジェクトを渡しています。それを「名前」と呼びましょう。
現在、この名前は A、B、または C のいずれかです。値が A の場合、1 つのコンシューマーがそれをキューから取り出し、それを使用して何かを行います。値が B の場合、別のコンシューマーが同じキューから取り出して、別のことを行います。値が C の場合、3 番目のコンシューマーが同じことを行います。
私の質問は、これをどのように実装するかです。私の現在の理論は次のとおりです(疑似コードで):
// 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
このようなものはうまくいきますか、それとも私のスレッド同期に大混乱をもたらしますか? うまくいかない場合、これを実装するにはどのモデルを使用すればよいですか?