Производитель-потребитель - Использование Executors.newFixedThreadPool

Насколько я понимаю, шаблон «производитель-потребитель» может быть реализован с использованием очереди, совместно используемой производителем и потребителем. Производитель отправляет работу в общую очередь, потребитель извлекает ее и обрабатывает. Это также может быть реализовано производителем, напрямую подчиняющимся потребителю (потоки производителя напрямую отправляются в службу исполнителя Consumer).

Теперь я рассмотрел класс Executors, который предоставляет некоторые общие реализации пулов потоков. Метод newFixedThreadPool, согласно спецификации, «повторно использует фиксированное количество потоков, работающих в общей неограниченной очереди». О какой очереди здесь идет речь?

Если производитель напрямую отправляет задачу потребителю, это внутренняя очередь ExecutorService, содержащая список Runnables?

Или это промежуточная очередь, на случай, если производитель отправляет в общую очередь?

Может быть, мне не хватает всего, но не мог бы кто-нибудь пояснить?

7
задан Tomasz Nurkiewicz 11 August 2011 в 20:17
поделиться