0

複数のプロデューサーがあり、それぞれが独自のブロッキング キューにデータをプッシュします。各プロデューサーからのデータは個別に処理されます (したがって、個別のキューがあります)。

私の単一のコンシューマーは現在、これらのキューのそれぞれをポーリングし、それぞれにタイムアウトを設定しています。

プログラムは問題なく動作しますが、最適化しようとしています。「ポーリング」が好きではありません。これはこれにアプローチする最も効率的な方法ですか?,

プロデューサーごとにコンシューマーを使用して同じアプリを作成しましたが、プロファイルはわずかに悪化しました。

ありがとう 。

4

1 に答える 1

1

コンシューマーをキューのリスナーとして登録してみてください。これにより、キューの状態の変化が積極的にポーリングすることなくコンシューマーに通知されます (制御の反転)。

于 2014-02-15T00:35:17.423 に答える