У меня есть фиксированный пул потоков, который запускает 7 одновременных потоков в любое время (с очередью), и я хочу превратить его в запланированный пул потоков, который выполняет только 7 одновременных заданий, но может ставить в очередь / планировать больше.
Чтение документации мне не очень помогло.
newFixedThreadPool
public static ExecutorService newFixedThreadPool (int nThreads)
Создает пул потоков, который повторно использует фиксированный набор потоков, работающих в общей неограниченной очереди.Если какой-либо поток завершается из-за сбоя во время выполнения перед завершением работы, при необходимости для выполнения последующих задач его место занимает новый.
Параметры: nThreads - количество потоков в пуле. Возвращает: вновь созданныйпул потоков
newScheduledThreadPool
public static ScheduledExecutorService newScheduledThreadPool (int corePoolSize)
Создает потокпул, который может планировать команды для запуска после заданной задержки или для периодического выполнения.
Параметры: corePoolSize - количество потоков, которые должны храниться в пуле, даже если они простаивают.Возвращает: вновь созданный запланированный пул потоков
Что я не понимаю, так это corePoolSize и nThreads - это одно и то же?Является ли запланированный пул потоков действительно подмножеством фиксированного пула потоков, что означает, что я могу использовать запланированный пул потоков в качестве фиксированного пула потоков, который может ставить в очередь отложенные задачи?