Функция asyncio.gather(*coros)
одновременно запускает все awaitable-объекты, переданные как последовательность, и передает для запуска в цикле событий. Функция asyncio.gather()
является awaitable-объектом и запускается с оператором await. Если вы передаете функции gather() сопрограмму, то она будет автоматически назначена как задача
import asyncio
import random
async def two(x):
await asyncio.sleep(random.randint(1, 3))
return print(x)
async def one(x):
await asyncio.sleep(random.randint(1, 3))
return print(x)
async def main():
for x in range(5):
await asyncio.gather(one(1), two(2))
asyncio.run(main())