threading запускает потоки в одном процессе, multiprocessing — отдельные процессы, asyncio — кооперативные задачи в event loop. Выбор зависит от CPU-нагрузки, I/O и используемых библиотек.
[имя] спросил: Объясни разницу между threading, multiprocessing и asyncio. Когда что использовать?
threading запускает потоки в одном процессе, multiprocessing — отдельные процессы, asyncio — кооперативные задачи в event loop. Выбор зависит от CPU-нагрузки, I/O и используемых библиотек.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
threading запускает потоки в одном процессе, multiprocessing — отдельные процессы, asyncio — кооперативные задачи в event loop. Выбор зависит от CPU-нагрузки, I/O и используемых библиотек.
Потоки удобны для блокирующего I/O и разделяют память. Процессы дают независимое выполнение и изоляцию, но требуют обмена данными. asyncio подходит для большого числа операций с неблокирующими async API; блокирующий вызов тормозит loop. В обычной сборке CPython с GIL потоки не обеспечивают параллельное выполнение чистого Python CPU-кода; расширения и free-threaded-сборки меняют условия, поэтому уточняйте окружение.