故事:
我目前正在查看asyncio的基本示例,特别是这个 - 最简单的HTTP客户端。主函数启动事件循环,在数据获取完成后运行并关闭事件循环:
def main():
loop = get_event_loop()
try:
body = loop.run_until_complete(fetch())
finally:
loop.close()
print(body.decode('latin-1'), end='')
但是,如果我省略 loop.close()
代码,程序也能正常运行:
def main():
loop = get_event_loop()
body = loop.run_until_complete(fetch())
print(body.decode('latin-1'), end='')
问题:
虽然这里有一个例子,但问题是通用的——如果忘记关闭asyncio事件循环,可能会出什么问题?事件循环是否总是会隐式关闭?