Sobes.tech
Назад к вопросам
Junior — Middle
73

Как работает асинхронная модель в библиотеке 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 может переключиться на другие задачи, не блокируя поток.