На чем основана библиотека asyncio в Python
Python
Senior
Билайн
На чем основана библиотека asyncio в Python
Ответы
Asyncio основана на концепции событийного цикла (event loop), корутин (coroutines) и механизма `await`/`async`. Она использует однопоточную модель выполнения с кооперативной многозадачностью, где корутины добровольно передают управление обратно в цикл событий через `await`.
Ключевые компоненты:
- **Event Loop** - управляет выполнением корутин и обрабатывает события (I/O, таймеры)
- **Coroutines** - функции, объявленные через `async def`, которые можно приостанавливать
- **Futures/Tasks** - объекты, представляющие результат асинхронной операции
Пример:
```
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())
```
Asyncio особенно эффективна для I/O-bound задач, где традиционные потоки создают накладные расходы.