Souběžné spouštění coroutines
asyncio.create_task()
– naplánuje nějakou coroutine pro souběžné zpracování
Příklad:
async def main():
task1 = asyncio.create_task( say_after(1, 'hello') )
task2 = asyncio.create_task( say_after(2, 'world') )
print(f"started at {time.strftime('%X')}")
await task1
await task2
print(f"finished at {time.strftime('%X')}")
Všimněte si, že po této úpravě kód poběží o 1 sekundu rychleji (zpracování tasků je překryté při volání asyncio.sleep(delay)
ve funkci say_after()
).
Poznámka: Stále ale nejde o paralelní zpracování – Python využívá jen jedno vlákno.