aiohttp 异步

t0 = time.time()

loop = asyncio.get_event_loop()
loop.run_until_complete(fetch(BASE_URL+"/43_43074/", callback=parse_url))
tasks = [fetch(BASE_URL + page_url, callback=parse_body, title=title) for title, page_url in TITLE2URL.items()]
loop.run_until_complete(asyncio.gather(*tasks[:500]))
loop.close()
elapsed = time.time() - t0
print("cost {}".format(elapsed))

这里的loop.run_until_complete(asyncio.gather(*tasks[:500])) 和 loop.run_until_complete 有啥区别
还有一个await 这个又啥区别

阅读 1.6k
1 个回答

1.每个线程有一个事件循环,主线程调用asyncio.get_event_loop时会创建事件循环,你需要把异步的任务丢给这个循环的run_until_complete方法,事件循环会安排协同程序的执行。和方法名字一样,异步的任务完成方法才会就执行完成了。
2.await 就是协同的执行那些同步的任务,直到完成。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题