Назад к вопросам
Билайн
Junior — Middle
74
Как работает асинхронная модель в библиотеке asyncio в Python и из каких компонентов она состоит?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Асинхронная модель в библиотеке asyncio в Python основана на событийном цикле (event loop), который управляет выполнением задач без блокировки основного потока.
Основные компоненты asyncio:
- Event Loop — центральный механизм, который планирует и запускает корутины, обрабатывает события ввода-вывода.
- Корутины (coroutines) — функции с ключевым словом
async def, которые могут приостанавливать выполнение с помощьюawaitи возобновляться позже. - Future и Task — объекты, представляющие отложенные результаты; Task — это обертка над корутиной, которая позволяет планировать её выполнение.
- Транспорт и протоколы — низкоуровневые компоненты для работы с сетью и другими асинхронными операциями.
Пример использования:
import asyncio
async def say_hello():
print('Hello')
await asyncio.sleep(1)
print('World')
asyncio.run(say_hello())
Здесь asyncio.run запускает event loop, который выполняет корутину say_hello. Во время await asyncio.sleep(1) event loop может переключиться на другие задачи, не блокируя поток.