Что такое асинхронность в Python
Python
Junior
Без компании
Что такое асинхронность в Python
Ответы
Асинхронность в Python — это подход к выполнению задач без блокировки основного потока, позволяющий эффективно работать с I/O-операциями. Вместо ожидания завершения операции (как в синхронном коде), программа может переключиться на другие задачи.
Ключевые элементы:
- `async/await` — синтаксис для определения асинхронных функций
- Event loop — планировщик задач
- Корутины (coroutines) — специальные функции, которые могут приостанавливать выполнение
Пример:
```
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("Делаем что-то еще")
await task # Ожидаем завершения
asyncio.run(main())
```
Преимущества:
- Эффективность при работе с сетью/БД
- Масштабируемость
- Читаемость кода (по сравнению с callback-ами)
Недостатки:
- Сложность отладки
- Не подходит для CPU-bound задач