Multiprocessing используем все ядра

Поговорим про multiprocessing - способ реального распараллеливания задач на ядра компьютера. Multiprocessing позволяет решать любые задачи (IO-bound или CPU-bound) Ускорение не идеально и возможно только до определенного предела, смотрим закон Амдала. Создает несколько процессов, у каждого из которых своя память и свой GIL, каждый выполняет свою задачу, взаимодействие между ними требует pickle API принципиально похоже на многопоточность, выгодно использовать Pool, а для взаимодействия между процессами Queue и Pipe Плюсы: реальная параллельность любых задач не умирает из-за одного(!) процессы не зависят друг от друга(у каждого процесса своя память и GIL) Минусы: - потребление ресурсов (памяти, процессора, времени) - необходимость сериализации в pickle - проблемы синхронизации (взаимодействие между процессами) Читать: #module-multiprocessing Фаулер М. “Asyncio и конкурентное программирование на Python“ Присоединяйтесь к помощи каналу, будет интересно) ✔️Бусти Будь первым везде и всегда, включай уведомления о новых выпусках 🔔 #Python #PythonRussian #multiprocessing
Back to Top