Назад к вопросам
Middle+
68
questionbank
Что такое функция gather()?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
asyncio.gather() объединяет результаты выполнения нескольких асинхронных объектов (корутин, задач) и возвращает итератор или один результат после завершения всех объектов. Это полезно для параллельного выполнения независимых асинхронных операций.
Ключевые особенности:
- Одновременное выполнение: Запускает все переданные объекты одновременно.
- Сохранение порядка: Порядок результатов соответствует порядку переданных объектов.
- Обработка исключений: По умолчанию, если любой из объектов вызывает исключение,
gather()его распространяет. Параметрreturn_exceptions=Trueпозволяет собрать исключения в список результатов вместо прекращения выполнения. - Типы входных данных: Принимает iterable (список, кортеж и т.д.) асинхронных объектов.
Применение:
- Параллельная загрузка данных с разных источников.
- Выполнение нескольких независимых сетевых запросов.
- Обработка нескольких задач, которые могут выполняться одновременно.
import asyncio
async def task1():
await asyncio.sleep(1)
return "Результат 1"
async def task2():
await asyncio.sleep(2)
return "Результат 2"
async def main():
results = await asyncio.gather(task1(), task2())
print(results) # Выведет ['Результат 1', 'Результат 2']
asyncio.run(main())