擅长:python、mysql、java
<p>处理完任何I/O资源后关闭它们总是正确的。垃圾收集器最终会把它们关起来。一旦最后一个引用超出范围,它可能会立即关闭它。它可能会在程序退出时关闭。当您等待它这样做时,资源仍然处于打开状态,占用内存,消耗文件指针,并且通常会占用您的系统资源。对于一个小的,寿命短的程序来说,这可能不是一个大问题,但是如果你的软件寿命长,或者建立了很多连接,这会回来伤害你。</p>
<p>答案是:视情况而定。如果您的系统依赖于套接字被关闭,那么显式地关闭它们会更安全。如果您可以在将来某个不确定的时间关闭套接字,您可以节省一点编码时间,并通过让垃圾收集器处理它来简化程序。</p>