生産者/消費者パターンについての私の理解は、生産者と消費者の間で共有されるキューを使用して実装できるということです。プロデューサーは作業を共有キューに送信し、コンシューマーはそれを取得して処理します。また、プロデューサーがコンシューマーに直接送信することによって実装することもできます(プロデューサースレッドがコンシューマーのエグゼキューターサービスに直接送信します)。
今、私はスレッドプールのいくつかの一般的な実装を提供するExecutorsクラスを見てきました。仕様によると、メソッドnewFixedThreadPoolは、「共有された無制限のキューで動作する固定数のスレッドを再利用します」。彼らはここでどのキューについて話しているのですか?
プロデューサーがタスクをコンシューマーに直接送信する場合、ランナブルのリストを含むのはExecutorServiceの内部キューですか?
それとも、プロデューサーが共有キューに送信する場合の中間キューですか?
私は全体のポイントを逃しているかもしれませんが、誰かが明確にしてください?