Sobes.tech
Junior — Middle

Qu'est-ce qu'un pool de threads et dans quels cas son utilisation est-elle appropriée?

sobes.tech IA

Réponse de l'IA

Пул потоков — это набор заранее созданных потоков, которые повторно используются для выполнения задач. Вместо создания нового потока на каждую задачу, берётся свободный поток из пула.

Преимущества:

  • Снижение накладных расходов на создание и уничтожение потоков.
  • Контроль максимального количества одновременно работающих потоков.

Целесообразно использовать пул потоков, когда:

  • Нужно выполнять множество коротких задач параллельно.
  • Требуется ограничить число одновременно работающих потоков.

Пример в Python с ThreadPoolExecutor:

from concurrent.futures import ThreadPoolExecutor
import time

def task(n):
    time.sleep(1)
    return n * 2

with ThreadPoolExecutor(max_workers=3) as executor:
    results = executor.map(task, range(5))
    for r in results:
        print(r)

Здесь создаётся пул из 3 потоков, которые выполняют 5 задач.