Разница в Java между фиксированным пулом потоков и запланированным пулом потоков

У меня есть фиксированный пул потоков, который запускает 7 параллельных потоков в любое время (с очередью), и я хочу превратить его в запланированный пул потоков, который выполняет только 7 одновременных заданий, но может ставить в очередь / планировать больше.

Чтение документации мне особо не помогло ..

newFixedThreadPool

public static ExecutorService newFixedThreadPool (int nThreads)

Создает пул потоков, который повторно использует фиксированный набор потоков, работающих вне общая неограниченная очередь. Если какой-либо поток завершается из-за сбоя во время выполнения перед выключением, новый займет его место, если необходимо для выполнения последующих задач.

Параметры: nThreads - количество потоков в пуле. Возвращает: вновь созданный пул потоков

newScheduledThreadPool

public static ScheduledExecutorService newScheduledThreadPool (int corePoolSize)

Создает пул потоков, который может планировать выполнение команд после заданного отложить или выполнять периодически.

Параметры: corePoolSize - количество потоков, которые нужно сохранить в пуле, даже если они простаивают. Возврат: недавно созданный пул запланированных потоков

Я не понимаю, являются ли corePoolSize и nThreads одним и тем же? Действительно ли запланированный пул потоков является подмножеством фиксированного пула потоков, что означает, что я могу использовать запланированный пул потоков в качестве фиксированного пула потоков, который может ставить в очередь отложенные задачи?

6
задан Koray Tugay 23 July 2017 в 06:14
поделиться