Sobes.tech
Back to questions
Junior — Middle
59

Можете объяснить механизм работы модуля asyncio в Python?

Answer from AI

sobes.tech AI

Модуль asyncio в Python реализует поддержку асинхронного программирования с помощью событийного цикла (event loop). Основная идея — не блокировать выполнение программы при ожидании операций ввода-вывода, а переключаться между задачами, которые готовы к выполнению.

Ключевые компоненты:

  • Event loop — центральный цикл, который управляет выполнением задач и обработкой событий.
  • Coroutine (корутина) — функция, которая может приостанавливать своё выполнение с помощью await, позволяя другим корутинам выполняться.
  • Future и Task — объекты, представляющие отложенные результаты и обёртки для корутин.

Пример использования:

import asyncio

async def say_hello():
    print('Hello')
    await asyncio.sleep(1)  # имитация асинхронной операции
    print('World')

async def main():
    await asyncio.gather(say_hello(), say_hello())

asyncio.run(main())

В этом примере две корутины say_hello запускаются одновременно, и asyncio переключается между ними во время ожидания sleep, что позволяет эффективно использовать время ожидания.