原有的代码是爬虫,化简完代码是这样
import asyncio
import aiohttp
async def worker():
while 1:
try:
async with aiohttp.ClientSession(timeout=aiohttp.ClientTimeout(total=5)) as session:
async with session.post('https://www.baidu.com') as r:
_ = await r.text()
except RuntimeError:
break
async def main():
await asyncio.wait([worker() for _ in range(100)])
if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
loop.close()
只需要不到 100 个协程,cpu 单核就可以 100%,是我对于协程有错误的理解吗,求指点
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.