ThreadPoolExecutor - Основной и максимальный размеры пула [дубликаты]

На этот вопрос уже есть ответ:

В чем разница между corePoolSize и maxPoolSize в Spring ThreadPoolTaskExecutor 4 ответа

Когда в методе передается новое заданиеexecute(java.lang.Runnable) и меньше чемcorePoolSize потоки работают, новый поток создается для обработки запроса, даже если другие рабочие потоки простаивают.

1) Почему существует необходимость создавать новый поток для обработки запроса, если есть свободные потоки?

Если их больше, чемcorePoolSize но меньше чемmaximumPoolSize Работающие потоки, новый поток будет создан, только если очередь заполнена.

2) я не понимаю разницу междуcorePoolSize а такжеmaximumPoolSize Вот. Во-вторых, как может быть заполнена очередь, когда потоки меньшеmaximumPoolSize? Очередь может быть заполнена только в том случае, если потоки равны или большеmaximumPoolSize. Не так ли?

Ответы на вопрос(3)

Ваш ответ на вопрос