import asyncio #导入协同函数库import timeasync def fun1(): print('func1 start') await asyncio.sleep(10) print('func1 start')async def fun2(): print('func2 start') await asyncio.sleep(3) print('func2 start')async def fun3(): print('func3 start') await asyncio.sleep(4) print('func3 start')async def main():#创建协同任务 tasks=[ asyncio.create_task(fun1()), asyncio.create_task(fun2()), asyncio.create_task(fun3()) ] await asyncio.wait(tasks)if __name__ == '__main__': t1=time.time() asyncio.run(main()) t2=time.time() print(t2-t1)
运行结果
#网络爬虫异步协同程序模板import asyncio #导入协同函数库import timeasync def download(url): print('正在下载') await asyncio.sleep(1) print('下载完成')async def main(): urls = [ 'www.baidu.com', 'www.qq.com', 'www.126.com' ] task = [] for url in urls: d = asyncio.create_task(download(url)) task.append(d) await asyncio.wait(task)if __name__ == '__main__': t1 = time.time() asyncio.run(main()) t2 = time.time() print(t2 - t1)
运行结果(单线程需要3秒多)
联系客服