Какие знаешь сущности в асинхронности
Python
Middle
Без компании
Какие знаешь сущности в асинхронности
Ответы
В Python асинхронность строится вокруг нескольких ключевых сущностей:
- **Coroutine** - асинхронная функция, объявляется с `async def`. Выполняется пошагово, может приостанавливаться на `await`.
```
async def fetch_data():
return "data"
```
- **Event Loop** - ядро асинхронности, управляет выполнением корутин и обрабатывает события. Обычно используется `asyncio.run()`.
- **Future** - объект, представляющий результат асинхронной операции, который может быть еще не готов.
- **Task** - подкласс Future, который оборачивает корутину и планирует её выполнение в event loop.
```
task = asyncio.create_task(fetch_data())
```
- **Awaitable** - любой объект, который можно использовать в `await`. Это корутины, Tasks и Futures.
- **Async Context Managers** (`async with`) и **Async Iterators** (`async for`) - асинхронные аналоги обычных менеджеров контекста и итераторов.