从Python 3.5开始引入了新的语法async和await,可以让coroutine(协程)的代码更简洁易读。
    语法编写如下:

    1. async def hello():
    2. print("Hello world!")
    3. r = await asyncio.sleep(1)
    4. print("Hello again!")
    1. import time
    2. import asyncio
    3. import requests
    4. async def download(url):
    5. print("开始下载")
    6. await asyncio.sleep(2)
    7. print("完成下载")
    8. async def main():
    9. urls = [
    10. "http://www.baidu.com",
    11. "http://www.jd.com",
    12. "http://www.163.com"
    13. ]
    14. tasks = [] #创建一个空字典
    15. for url in urls:
    16. d = download(url) #将每一个url交给download对象处理,处理后获取到每一个协程对象,再将所有的协程对象交给空字典
    17. tasks.append(d)
    18. await asyncio.wait(tasks) #最终一起处理所有的协程对象
    19. if __name__ == '__main__':
    20. t1 = time.time()
    21. asyncio.run(main())
    22. t2 = time.time()
    23. print( t2 -t1 )