- asyncio
- async
- await
- gather
Print async
- This is almost the same example but we wait in parallel.
- The order of the output is now different.
- It also finishes 1 sec faster. It finishes when the longest wait ends.
examples/async/print_async.py
import time import asyncio async def say(text, sec): await asyncio.sleep(sec) print(text) async def main(): print('start main') start = time.monotonic() await asyncio.gather( say("First", 2), say("Second", 1), ) end = time.monotonic() print(f"Elapsed: {end-start}") main_co = main() print(main_co) asyncio.run(main_co)
Second First Elapsed: 2.002833483973518