Работал ли с asyncio
Python
Junior
Без компании
Работал ли с asyncio
Ответы
Да, работал с `asyncio` — это стандартная библиотека Python для асинхронного программирования. Основные концепции: корутины (`async/await`), цикл событий (`event loop`), задачи (`Task`) и футуры (`Future`).
Пример простого HTTP-запроса с `aiohttp`:
```
import aiohttp
import asyncio
async def fetch(url):
async with aiohttp.ClientSession() as session:
async with session.get(url) as response:
return await response.text()
async def main():
html = await fetch("https://example.com")
print(html[:100]) # первые 100 символов
asyncio.run(main())
```
Ключевые моменты:
- `async def` — объявление корутины.
- `await` — приостановка выполнения до завершения операции.
- `asyncio.run()` — запуск цикла событий.
Нюансы:
- Блокирующий код (например, `time.sleep`) ломает асинхронность — используй `asyncio.sleep`.
- Для конкурентности применяй `asyncio.gather()`.
- Ошибки в корутинах нужно обрабатывать внутри или через `try/except`.