Python3.7 高级编程之 async/await asyncio 通过任务gather并发运行协程
import asyncio import time # 并发执行协程 # 模拟的耗时任务 交给协程来处理 async def my_task(name, number): await asyncio.sleep(number) print(%s 已经完成任务... % name) async def main(): print(fstarted at {time.strftime(%X)}) # 将三个任务交给 asyncio.gather 并发的执行 理论的预期并行耗时应该为 4秒否则为未达到预期 await asyncio.gather( my_task(A, 2), my_task(B, 3), my_task(C, 4), ) # 下面的方法和上面可以达到相同的预期 但是 在启动协程较多的情况下 推荐使用上法 # task1 asyncio.create_task(my_task(A, 2)) # task2 asyncio.create_task(my_task(B, 3)) # task3 asyncio.create_task(my_task(C, 4)) # await task1 # await task2 # await task3 print(ffinished at {time.strftime(%X)}) asyncio.run(main())

相关新闻