Sobes.tech
Back to questions
Middle+
7

Как работает asyncio event loop и asyncio.gather?

Companies where asked
Литрес

Answer from AI

sobes.tech AI

В Python asyncio — это библиотека для написания асинхронного кода с использованием событийного цикла (event loop).

asyncio event loop — это цикл, который управляет выполнением асинхронных задач, ожидает их завершения и переключается между ними без блокировки основного потока.

asyncio.gather — это функция, которая позволяет запустить несколько корутин (асинхронных функций) параллельно и дождаться их завершения. Она принимает несколько awaitable объектов и возвращает результат в виде списка.

Пример:

import asyncio

async def say_after(delay, message):
    await asyncio.sleep(delay)
    return message

async def main():
    results = await asyncio.gather(
        say_after(1, 'hello'),
        say_after(2, 'world')
    )
    print(results)  # ['hello', 'world']

asyncio.run(main())

Здесь event loop запускает обе задачи одновременно, не блокируя выполнение, и собирает их результаты.