Пул потоков — это фиксированный набор переиспользуемых рабочих потоков, которые берут задачи из общей очереди работы. Он избегает затрат на создание потока под каждую задачу и ограничивает число конкурентных потоков.
Зачем его использовать
Создание и уничтожение потоков дорого (выделение стека, настройка планирования ОС), а неограниченное создание потоков исчерпывает память и вызывает пробуксовку от переключений контекста. Пул амортизирует стоимость создания и ограничивает конкурентность.
задачи → [ очередь работы ] → worker 1
worker 2 (N фиксированных воркеров берут и выполняют)
worker 3
