Как использовать async/await
Python
Middle
Без компании
Как использовать async/await
Ответы
Асинхронное программирование в Python реализуется через ключевые слова `async` и `await`. Основные моменты:
- **async** определяет асинхронную функцию (корутину). Такая функция выполняется в событийном цикле и может приостанавливать выполнение.
- **await** используется внутри async-функции для ожидания результата другой асинхронной операции без блокировки потока.
Пример:
```
import asyncio
async def fetch_data():
print("Начало загрузки")
await asyncio.sleep(2) # Имитация долгой операции
print("Данные загружены")
return {"data": 123}
async def main():
task = asyncio.create_task(fetch_data())
print("Делаем что-то параллельно")
await task # Ожидаем завершения задачи
print(task.result())
asyncio.run(main())
```
Важные нюансы:
- Асинхронные функции нужно запускать через `asyncio.run()` или в событийном цикле
- `await` можно использовать только внутри async-функций
- Обычные блокирующие функции (например, time.sleep) будут блокировать весь цикл - используйте асинхронные аналоги
- Для параллельного выполнения нескольких задач используйте `asyncio.gather()` или `asyncio.create_task()`