Python学习笔记--协程asyncio
协程的主要功能是单线程并发运行
假设有3个耗时不一样的任务。看看协程的效果。
先来看没有使用协程情况:
1 #!/usr/bin/python3 2 # -*- coding:utf-8 -*- 3 4 import time 5 6 def taskfun(num): 7 time.sleep(num) 8 print('执行时间'+str(num)+'秒!') 9 def no_async_main(): 10 print(f"start at {time.strftime('%X')}") 11 taskfun(1) 12 taskfun(2) 13 taskfun(3) 14 print(f"finished at {time.strftime('%X')}") 15 16 17 if __name__ == '__main__': 18 no_async_main()
上面代码执行结果如下:

再来看看使用协程的情况:
1 import asyncio 2 import time 3 4 async def taskfun(num): 5 await asyncio.sleep(num) 6 print('执行时间'+str(num)+'秒!') 7 8 async def mainfun(): 9 print(f"start at {time.strftime('%X')}") 10 await asyncio.gather(taskfun(1),taskfun(2),taskfun(3)) 11 print(f"finished at {time.strftime('%X')}") 12 13 def main(): 14 asyncio.run(mainfun()) 15 16 if __name__ == '__main__': 17 main()
上面代码执行结果如下:


浙公网安备 33010602011771号