#https://docs.python.org/3.4/library/asyncio-task.html#example-parallel-execution-of-tasks #import asyncio import asyncio_slow as asyncio @asyncio.coroutine def factorial(name, number): f = 1 for i in range(2, number + 1): print("Task %s: Compute factorial(%s)..." % (name, i)) yield from asyncio.sleep(1) f *= i print("Task %s: factorial(%s) = %s" % (name, number, f)) tasks = [ asyncio.Task(factorial("A", 2)), asyncio.Task(factorial("B", 3)), asyncio.Task(factorial("C", 4)) ] loop = asyncio.get_event_loop() loop.run_until_complete(asyncio.wait(tasks)) loop.close()
#https://docs.python.org/3.4/library/asyncio-task.html#example-chain-coroutines #import asyncio import asyncio_slow as asyncio @asyncio.coroutine def compute(x, y): print("Compute %s + %s ..." % (x, y)) yield from asyncio.sleep(1.0) return x + y @asyncio.coroutine def print_sum(x, y): result = yield from compute(x, y) print("%s + %s = %s" % (x, y, result)) loop = asyncio.get_event_loop() loop.run_until_complete(print_sum(1, 2)) loop.close()