Check

Разница между процессами и потоками

Python Senior Яндекс
Объясните разницу между потоками (`threading`) и процессами (`multiprocessing`) в Python. Когда стоит предпочесть каждый подход?
Ответы
threading vs multiprocessing
Потоки разделяют общую память процесса: доступ к общим структурам данных простой, но есть проблемы с GIL и синхронизацией (lock, RLock, Event и т.д.). В CPython потоки не масштабируются по CPU-bound задачам. Процессы имеют отдельное адресное пространство, обходят GIL и могут эффективно использовать несколько ядер для CPU-bound задач. Но обмен данными дороже (через очереди, пайпы, shared memory) и запуск процессов тяжелее. Обычно: - I/O-bound (много ожидания сети/диска) → `threading` или `asyncio`; - CPU-bound (обработка картинок, вычисления) → `multiprocessing` или внешние библиотеки (NumPy, C-расширения).