Back to questions
Junior — Middle
58
Какие особенности применения функции gather в библиотеке asyncio и в чем ее преимущества при организации асинхронных операций?
Companies where asked
Магнит Тех
Answer from AI
sobes.tech AI
Функция asyncio.gather используется для параллельного запуска нескольких корутин и ожидания их завершения. Она принимает несколько awaitable объектов и возвращает результат их выполнения в виде списка, сохраняя порядок вызова.
Преимущества gather:
- Позволяет запускать несколько асинхронных задач одновременно, что повышает эффективность.
- Упрощает управление группой задач, так как можно дождаться их всех одним вызовом.
- Поддерживает обработку исключений: если одна из задач упадет,
gatherможет выбросить исключение или продолжить выполнение в зависимости от параметров.
Пример использования:
import asyncio
async def fetch_data(x):
await asyncio.sleep(1)
return x * 2
async def main():
results = await asyncio.gather(
fetch_data(1),
fetch_data(2),
fetch_data(3)
)
print(results) # [2, 4, 6]
asyncio.run(main())