Назад к вопросам
Middle+
6
Как работает asyncio event loop и asyncio.gather?
Компании, где спрашивали
Литрес
Ответ от нейросети
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 запускает обе задачи одновременно, не блокируя выполнение, и собирает их результаты.