6
目前我正在通過asyncio basic examples,尤其是this one - 儘可能簡單的HTTP客戶端。如果我省略了loop.close()
def main():
loop = get_event_loop()
try:
body = loop.run_until_complete(fetch())
finally:
loop.close()
print(body.decode('latin-1'), end='')
但是,代碼也適用:
def main():
loop = get_event_loop()
body = loop.run_until_complete(fetch())
print(body.decode('latin-1'), end='')
問題的主要功能啓動一個事件循環,運行,直到數據抓取完畢並關閉事件循環:
雖然有一個例子,但問題是一個通用的問題 - 如果忘記關閉asyncio事件循環,可能會出現什麼問題?事件循環是否始終隱式關閉?
你會泄漏資源。 –
您認爲隱含關閉它是什麼?我認爲當程序結束時你只能依賴垃圾回收,在程序結束之前你的程序運行了多長時間才能完成事件循環? –
@FilipHaglund謝謝。你能想出一種方法來測試/證明這一點嗎? – alecxe