Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import asyncio
- async def factorial(name, number):
- f = 1
- for i in range(2, number+1):
- print("Task %s: Compute factorial(%s)..." % (name, i))
- f *= i
- await asyncio.sleep(1)
- print("Task %s: factorial(%s) = %s" % (name, number, f))
- yield f
- async def collect_one_source(name, number):
- return [f async for f in factorial(name, number)]
- async def collect_everything():
- futures = [
- collect_one_source("A", 2),
- collect_one_source("B", 3),
- collect_one_source("C", 4),
- ]
- result = [
- await future
- for future in asyncio.as_completed(futures)
- ]
- result.sort()
- return result
- loop = asyncio.get_event_loop()
- loop.run_until_complete(asyncio.gather(
- factorial("A", 2),
- factorial("B", 3),
- factorial("C", 4),
- ))
- loop.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement