import asyncioimport timeasync def request(url): print('正在下载',url) #在异步协程中如果出现了同步模块相关的代码,那么就无法实现异步 time.sleep(2) print('下载完毕',url)star=time.time()urls=[ 'www.baidu.com', 'www.sogou.com', 'www.goubanjia.com']#任务列表:存放多个任务对象stasks=[]for url in urls: c=request(url) task=asyncio.ensure_future(c) stasks.append(task)loop=asyncio.get_event_loop()#需要将任务列表封装到wait中loop.run_until_complete(asyncio.wait(stasks))print('执行时间',time.time()-star)
正在下载 www.baidu.com下载完毕 www.baidu.com正在下载 www.sogou.com下载完毕 www.sogou.com正在下载 www.goubanjia.com下载完毕 www.goubanjia.com执行时间 6.025745630264282
import asyncioimport timeasync def request(url): print('正在下载',url) #在异步协程中如果出现了同步模块相关的代码,那么就无法实现异步 #time.sleep(2) #当在asyncio中遇到阻塞操作必须进行手动挂起 await asyncio.sleep(2) print('下载完毕',url)star=time.time()urls=[ 'www.baidu.com', 'www.sogou.com', 'www.goubanjia.com']#任务列表:存放多个任务对象stasks=[]for url in urls: c=request(url) task=asyncio.ensure_future(c) stasks.append(task)loop=asyncio.get_event_loop()#需要将任务列表封装到wait中loop.run_until_complete(asyncio.wait(stasks))print('执行时间',time.time()-star)
正在下载 www.baidu.com正在下载 www.sogou.com正在下载 www.goubanjia.com下载完毕 www.baidu.com下载完毕 www.sogou.com下载完毕 www.goubanjia.com执行时间 2.0065832138061523