import asyncio #導(dǎo)入?yún)f(xié)同函數(shù)庫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():#創(chuàng)建協(xié)同任務(wù) 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)
運行結(jié)果
#網(wǎng)絡(luò)爬蟲異步協(xié)同程序模板import asyncio #導(dǎo)入?yún)f(xié)同函數(shù)庫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)
運行結(jié)果(單線程需要3秒多)