Помогите Диме помочь помогать помочь помогать

Лента светодиодная

23.07.2016


Пул потоков (thread pool) представляет собой объединение очереди задач и набора рабочих потоков, которое формирует структуру производитель-потребитель (см. раздел «Программные каналы» в главе 4). Производители добавляют задачи в очередь, а рабочие потоки потребляют их, когда появляется простаивающий поток, готовый к новому сеансу выполнения в фоновом режиме. То есть пул рабочих потоков может содержать как активные потоки, выполняющие задачи, так и пассивные, ожидающие появления новых задач. Возможно вам понадобится лента светодиодная.


У пула потоков есть определённые преимущества, по сравнению с выполнением каждой очередной задачи в новом потоке (шаблон «отдельный поток для каждой задачи»):


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


пул потоков определяется с максимально возможным числом потоков, так что платформа не испытывает перегрузок от фоновых потоков, съедающих память приложения, при наличии чрезмерно большого числа задач;


жизненный цикл всех рабочих потоков регулируется пулом потоков.


Раздел «ExecutorCompletionService» ниже содержит подробный пример использования пула потоков и других функциональных возможностей, обсуждаемых в данной главе.