2

複数のプロデューサーと1つのコンシューマーの問題を達成する必要があります。制限は、私には2人のプロデューサーと1人のコンシューマーがいることです。コンシューマーは、両方のプロデューサーから通知を受け取ったときにのみ処理を開始する必要があります。それまで、消費者は何もすべきではありません。しかし、各プロデューサーは独立して働き、彼らは生産を続けることができます。これを行うのを手伝っていただけませんか。HSK

4

1 に答える 1

2

プロデューサーごとに1つずつ、 2つのブロッキングキューを作成します。コンシューマーは両方のキューについて知っており、それぞれから要素を取得しようとします。(一方から他方を取得するだけでそれを行うことができます。)それぞれから要素を取得すると、それを処理してから繰り返します。

ただし、あるプロデューサーが別のプロデューサーよりもはるかに高速である場合に何をしたいかを検討する必要があります。おそらく、キューを制限し、1つのプロデューサーがキューを「いっぱい」にした場合の対処方法を検討する必要があります。

于 2012-11-21T09:27:20.553 に答える