Привет! Сегодня разберем две мощные техники: многопоточное программирование (threading) и асинхронность (asyncio). Если твой код выполняет долгие операции (например, запросы в интернет или работу с файлами), то это поможет ускорить его! 1. Многопоточное программирование (`threading`) Поток (thread) — это отдельный процесс выполнения кода. В Python потоки полезны, когда программа ждет внешние ресурсы (например, загрузку файлов). Простой пример: запуск двух функций параллельно Вывод (идет вперемешку, так как потоки работают параллельно): Теперь обе функции выполняются одновременно! Когда использовать потоки? При ожидании внешних ресурсов (запросов, файлов, загрузки данных).
Не ускоряет вычисления, так как Python использует GIL (Global Interpreter Lock).
2. Многопроцессное программирование (`multiprocessing`)
Потоки не ускоряют тяжелые вычисления, но процессы (processes) могут!
Пример: запустим два процесса, выполняющих вычисления Теперь Python использует несколько ядер процессора, ус