Пул потоков (ThreadPool) — это группа рабочих потоков, управляемых единым сущностью, которая получает задачи и распределяет их между доступными потоками. Вместо создания нового потока для каждой задачи, пул переиспользует существующие.
Основные преимущества:
В Java для работы с пулами потоков используется пакет java.util.concurrent. Основные интерфейсы и классы:
Executor: Интерфейс для выполнения задач.ExecutorService: Расширение Executor, предоставляющее методы для управления жизненным циклом пула и получения результатов выполнения задач.Executors: Вспомогательный класс для создания стандартных реализаций ExecutorService, например:
newFixedThreadPool(int nThreads): Пул с фиксированным количеством потоков.newCachedThreadPool(): Пул, создающий потоки по мере необходимости и переиспользующий неактивные.newSingleThreadExecutor(): Пул с одним рабочим потоком.newScheduledThreadPool(int corePoolSize): Пул для выполнения задач по расписанию.ThreadPoolExecutor: Гибкая реализация ExecutorService, позволяющая более тонко настраивать поведение пула.Пример использования ExecutorService:
java
Жизненный цикл пула управляется методами shutdown() и shutdownNow() для его корректного останова.