Как работает асинхронность в Python

Python Middle Без компании
Как работает асинхронность в Python
Ответы
Асинхронность в Python работает через механизм event loop и корутины (coroutines). Основные компоненты: - **Event Loop** - управляет выполнением задач, переключаясь между ними при ожидании I/O - **Корутины** - специальные функции, объявленные через `async def`, которые могут приостанавливать выполнение через `await` - **Awaitables** - объекты (корутины, Tasks, Futures), которые можно ждать через `await` Пример: ``` import asyncio async def fetch_data(): print("Начинаем загрузку") await asyncio.sleep(2) # Имитация I/O операции print("Данные загружены") return {"data": 123} async def main(): task = asyncio.create_task(fetch_data()) print("Делаем что-то параллельно") await task # Ждем завершения задачи asyncio.run(main()) ``` Ключевые особенности: - Не блокирует поток выполнения при ожидании I/O - Использует кооперативную многозадачность (корутины добровольно уступают контроль) - Работает в одном потоке (но может использовать несколько через ThreadPoolExecutor)