Async sleep in loop
-
create_task
-
4 sleeping in parallel will be much faster
-
This time we used
create_task
to set up the tasks ahead of time and the we awaited all of them.
import time
import asyncio
async def sleep(cnt, sec):
print(f"Start {cnt}")
await asyncio.sleep(sec)
print(f"End {cnt}")
async def main():
co_routines = []
for i in range(4):
co_routines.append(sleep(i, 1))
for t in co_routines:
await t
start = time.monotonic()
asyncio.run(main())
end = time.monotonic()
print(f"Elapsed {end-start}")
Start 0
Start 1
Start 2
Start 3
End 0
End 1
End 2
End 3
Elapsed 1.0030033588409424