Что такое asyncio в Python
Python
Senior
Без компании
Что такое asyncio в Python
Ответы
Asyncio — это библиотека для написания конкурентного кода с использованием синтаксиса async/await. Она позволяет выполнять I/O-операции (сеть, файлы) без блокировки потока, используя однопоточный цикл событий (event loop).
**Ключевые особенности:**
- **Корутины (coroutines)** — функции, объявленные через `async def`.
- **Event loop** — управляет выполнением корутин.
- **Awaitables** — объекты, которые можно `await` (корутины, задачи, футуры).
**Пример:**
```
import asyncio
async def fetch_data():
print("Начинаем загрузку...")
await asyncio.sleep(2) # Имитация I/O-операции
print("Данные загружены!")
return "Результат"
async def main():
task = asyncio.create_task(fetch_data())
print("Делаем что-то параллельно...")
result = await task
print(f"Получено: {result}")
asyncio.run(main())
```
**Когда использовать:**
- Высоконагруженные I/O-приложения (веб-серверы, API, боты).
- Множество одновременных соединений.
- Задачи с долгим ожиданием (HTTP-запросы, БД).
**Не подходит для CPU-задач (нужен multiprocessing).**