async ====》异步 ; io ====》inpurt output

    asyncio是Python 3.4版本引入的标准库,直接内置了对异步IO的支持。
    asyncio的编程模型就是一个消息循环。我们从asyncio模块中直接获取一个EventLoop(事件循环)的引用,然后把需要执行的协程扔到EventLoop中执行,就实现了异步IO。

    1. import requests
    2. import asyncio #想要实现协程必须要引用到Python内置的包
    3. import time
    4. async def f1(): #定义函数f1到f4
    5. print("孙大圣")
    6. await asyncio.sleep(2)
    7. print("孙大圣")
    8. async def f2():
    9. print("老猪")
    10. await asyncio.sleep(3)
    11. print("老猪")
    12. async def f3():
    13. print("唐僧")
    14. await asyncio.sleep(6)
    15. print("唐僧")
    16. async def f4():
    17. print("沙僧")
    18. await asyncio.sleep(1)
    19. print("沙僧")
    20. # if __name__ == '__main__': #第一种方法,但推荐使用第二种方法
    21. # f1 = f1()
    22. # f2 = f2()
    23. # f3 = f3()
    24. # f4 = f4()
    25. # list = [
    26. # f1, f2, f3, f4
    27. # ]
    28. # t1 = time.time()
    29. # asyncio.run(asyncio.wait(list))
    30. # t2 = time.time()
    31. # print(t2 -t1 )
    32. async def main(): #第二中方法,要注意的是在3.8版本后需要手动将协程对象对象包装
    33. list = [ #成一个task对象
    34. asyncio.create_task(f1()),
    35. asyncio.create_task(f2()),
    36. asyncio.create_task(f3()),
    37. asyncio.create_task(f4())
    38. ]
    39. await asyncio.wait(list) #代码运行过程
    40. # 当代被执行时找到执行入口,执行入口内使用asyncio.run调用了
    41. if __name__ == '__main__': # main函数, 随后在main函数内将四个函数装到列表内,随后设置
    42. t1 = time.time() # await等待执行asyncio.wait将列表内的方法根据线程占用情况而
    43. asyncio.run(main()) # 运行
    44. t2 = time.time()
    45. print(t2 - t1 ) # 两个time使来看