import asyncio import time start = time.time() urls = [ 'www.1.com','www.2.com','www.3.com' ] async def get_request(url): print('正在请求:', url) await asyncio.sleep(2) print('请求结束:', url) if name == 'main': tasks = [] for url in urls: c = get_request(url) task = asyncio.ensure_future(c) tasks.append(task) loop = asyncio.get_event_loop() loop.run_until_complete(asyncio.wait(tasks)) loop.close() print('总耗时:',time.time()-start)
时间: 2023-02-08 19:12:13 浏览: 162
Nginx + uwsgi + web.py 搭建web服务器
5星 · 资源好评率100%
这段代码实现了什么功能?
这段代码实现了异步发送请求的功能。它包含一个异步函数 get_request,该函数打印正在请求的 URL,然后暂停 2 秒,最后打印请求结束的 URL。代码中还有一个列表 urls,包含了三个 URL。
在 if 判断的条件中,如果当前文件是被执行的主文件(即被直接运行的文件),就会执行其中的代码。具体来说,会创建一个任务列表 tasks,然后遍历 urls 列表,对于每个 URL 都调用 get_request 函数,并使用 asyncio.ensure_future 将其封装成一个任务,最后将任务加入 tasks 列表中。
接着,会获取事件循环,并使用 asyncio.wait 函数等待所有任务完成,最后关闭事件循环。最后会输出运行时间。
阅读全文