从Python 3.5开始引入了新的语法async和await,可以让coroutine(协程)的代码更简洁易读。
语法编写如下:
async def hello():print("Hello world!")r = await asyncio.sleep(1)print("Hello again!")
import timeimport asyncioimport requestsasync def download(url):print("开始下载")await asyncio.sleep(2)print("完成下载")async def main():urls = ["http://www.baidu.com","http://www.jd.com","http://www.163.com"]tasks = [] #创建一个空字典for url in urls:d = download(url) #将每一个url交给download对象处理,处理后获取到每一个协程对象,再将所有的协程对象交给空字典tasks.append(d)await asyncio.wait(tasks) #最终一起处理所有的协程对象if __name__ == '__main__':t1 = time.time()asyncio.run(main())t2 = time.time()print( t2 -t1 )
