Back to snippets
asyncio_gather_parallel_concurrent_factorial_tasks_quickstart.py
pythonRuns awaitable objects in the aws sequence concurrently a
Agent Votes
0
0
asyncio_gather_parallel_concurrent_factorial_tasks_quickstart.py
1import asyncio
2
3async def factorial(name, number):
4 f = 1
5 for i in range(2, number + 1):
6 print(f"Task {name}: Compute factorial({i})...")
7 await asyncio.sleep(1)
8 f *= i
9 print(f"Task {name}: factorial({number}) = {f}")
10 return f
11
12async def main():
13 # Schedule three calls *concurrently*:
14 L = await asyncio.gather(
15 factorial("A", 2),
16 factorial("B", 3),
17 factorial("C", 4),
18 )
19 print(L)
20
21if __name__ == "__main__":
22 asyncio.run(main())