Multiprocessing используем все ядра
Python Russian
Поговорим про multiprocessing - способ реального распараллеливания задач на ядра компьютера. Multiprocessing позволяет решать любые задачи (IO-bound или CPU-bound) Ускорение не идеально и возможно только до определенного предела, смотрим закон Амдала. Создает несколько процессов, у каждого из которых своя память и свой GIL, каждый выполняет свою задачу, взаимодействие между ними требует pickle API принципиально похоже на многопоточность, выгодно использовать Pool, а для взаимодействия между процессами Queue и Pipe Плюсы: + реальная параллельность любых задач + не умирает из-за одного(!) + процессы не зависят друг от друга(у каждого процесса своя память и GIL) Минусы: - потребление ресурсов (памяти, процессора, времени) - необходимость сериализации в pickle - проблемы синхронизации (взаимодействие между процессами)