python协程aiohttp多任务同时执行
时间: 2023-11-05 15:56:58 浏览: 174
使用Python的asyncio和aiohttp模块可以实现协程异步编程,从而实现多任务同时执行。
下面是一个简单的示例代码,使用aiohttp异步发起HTTP请求:
```python
import asyncio
import aiohttp
async def fetch(session, url):
async with session.get(url) as response:
return await response.text()
async def main():
async with aiohttp.ClientSession() as session:
urls = ['https://www.baidu.com', 'https://www.google.com', 'https://www.bing.com']
tasks = []
for url in urls:
task = asyncio.create_task(fetch(session, url))
tasks.append(task)
htmls = await asyncio.gather(*tasks)
for html in htmls:
print(html)
asyncio.run(main())
```
在这个示例代码中,使用async with语句创建一个aiohttp的ClientSession对象,使用Session对象可以方便地发起多个HTTP请求。然后使用asyncio.create_task()函数创建协程任务,将任务添加到任务列表中,最后使用asyncio.gather()函数进行并发执行,等待所有任务完成后返回结果。
阅读全文