Что такое process pool?

Middle
214 просмотров
AFK Offer AI

ProcessPoolExecutor из concurrent.futures — пул процессов для CPU-bound задач. API идентичен ThreadPoolExecutor: submit(), map(), as_completed(). Каждый воркер — отдельный процесс с собственным GIL. Аргументы и результаты сериализуются через pickle — нельзя передавать lambda, вложенные функции, незакрытые файлы. max_workers по умолчанию — число ядер CPU. Стартуп дороже потоков, но для CPU-задач даёт реальный параллелизм. Для небольших задач overhead pickle может перевесить выигрыш.

Следующий вопрос

Как работают background tasks в FastAPI?