async ====》异步 ; io ====》inpurt output
asyncio是Python 3.4版本引入的标准库,直接内置了对异步IO的支持。
asyncio的编程模型就是一个消息循环。我们从asyncio模块中直接获取一个EventLoop(事件循环)的引用,然后把需要执行的协程扔到EventLoop中执行,就实现了异步IO。
import requestsimport asyncio #想要实现协程必须要引用到Python内置的包import timeasync def f1(): #定义函数f1到f4print("孙大圣")await asyncio.sleep(2)print("孙大圣")async def f2():print("老猪")await asyncio.sleep(3)print("老猪")async def f3():print("唐僧")await asyncio.sleep(6)print("唐僧")async def f4():print("沙僧")await asyncio.sleep(1)print("沙僧")# if __name__ == '__main__': #第一种方法,但推荐使用第二种方法# f1 = f1()# f2 = f2()# f3 = f3()# f4 = f4()# list = [# f1, f2, f3, f4# ]# t1 = time.time()# asyncio.run(asyncio.wait(list))# t2 = time.time()# print(t2 -t1 )async def main(): #第二中方法,要注意的是在3.8版本后需要手动将协程对象对象包装list = [ #成一个task对象asyncio.create_task(f1()),asyncio.create_task(f2()),asyncio.create_task(f3()),asyncio.create_task(f4())]await asyncio.wait(list) #代码运行过程# 当代被执行时找到执行入口,执行入口内使用asyncio.run调用了if __name__ == '__main__': # main函数, 随后在main函数内将四个函数装到列表内,随后设置t1 = time.time() # await等待执行asyncio.wait将列表内的方法根据线程占用情况而asyncio.run(main()) # 运行t2 = time.time()print(t2 - t1 ) # 两个time使来看
