Знаешь ли что-нибудь про асинхронность

Python Junior Без компании
Знаешь ли что-нибудь про асинхронность
Ответы
Асинхронность в Python позволяет выполнять задачи без блокировки основного потока, используя механизмы `asyncio`, корутины и `async/await`. **Ключевые моменты:** - `async def` объявляет асинхронную функцию (корутину). - `await` приостанавливает выполнение корутины, пока операция не завершится. - `asyncio.run()` запускает асинхронный код. **Пример:** ``` import asyncio async def fetch_data(): print("Начало загрузки") await asyncio.sleep(2) # Имитация долгой операции print("Данные загружены") async def main(): await asyncio.gather(fetch_data(), fetch_data()) # Параллельное выполнение asyncio.run(main()) ``` **Плюсы:** - Эффективность для I/O-bound задач (сетевые запросы, работа с файлами). - Меньше накладных расходов по сравнению с потоками. **Ограничения:** - Не подходит для CPU-bound задач (нужны процессы или threading). - Требует поддержки библиотек (например, `aiohttp` вместо `requests`).