Проверяет понимание различных моделей параллелизма и их практических применений.
Threading: несколько потоков в одном процессе, удобен для I/O, но GIL мешает параллельным вычислениям.
Asyncio: одна нить с циклом событий, отлично масштабирует I/O‑задачи, но требует перестройки кода.
Multiprocessing: несколько процессов, полноценный параллелизм на CPU‑интенсивных задачах, но тяжёлый в коммуникации и запуске.
Многопоточность (threading):
Быстрая реакция на I/O‑операции.
GIL запрещает одновременное выполнение байткода в разных потоках.
Асинхронность (asyncio):
Обрабатывает тысячи соединений без больших ресурсов.
Не подходит для CPU‑нагруженных задач, требует async/await.
Мультипроцессинг (multiprocessing):
Реальный параллелизм на нескольких ядрах.
Высокие накладные расходы на сериализацию и межпроцессное взаимодействие.
Выбор:
I/O‑бизнес‑логика → asyncio или threading.
Тяжёлые вычисления → multiprocessing.
Комбинированные нагрузки → гибридные модели.