Что такое асинхронность в контексте Python?
Этот вопрос проверяет знание асинхронного программирования в Python и его применения для повышения производительности.
Короткий ответ
Асинхронность — это способ выполнения задач без блокировки программы. Python позволяет писать асинхронный код с помощью async и await, чтобы обрабатывать множество задач одновременно, не дожидаясь завершения долгих операций, таких как запросы к серверу или чтение файлов.
Длинный ответ
Асинхронность позволяет выполнять задачи одновременно без использования потоков. Python использует библиотеку asyncio, где ключевые понятия включают:
- Event Loop: Цикл событий, который обрабатывает асинхронные задачи.
- Корутины: Функции, определённые с помощью async def.
- await: Ожидание выполнения асинхронной задачи.
Пример:
import asyncio
async def fetch_data():
print("Start fetching data...")
await asyncio.sleep(2) # Имитация сетевого запроса
print("Data fetched")
return "Data"
async def main():
data = await fetch_data()
print(data)
asyncio.run(main())
Асинхронный код полезен для задач с высокой задержкой, таких как запросы к API, работа с файлами или базами данных. Однако для вычислительно интенсивных задач он не подходит, так как использует только один поток.