net

收录了 1 篇文章 · 0 人关注

  • golang的垃圾回收与Finalizer——tcp连接是如何被自动关闭的

    最近在做一个golang的连接池。测试过程中发现一个有趣的现象,获取的连接没有归还给连接池,那么过一段时间后该连接会自动关闭掉。猜测这跟连接池应该是没有关系的,于是再用普通的连接做了实验,即dial一个tcp连接,发送请求,然后程序进入sleep,一段时间后该连接还是会自动关闭。 对这个过程进行抓包分析,发现主动关闭连接的是client端,即client端主动向服务端发送了FIN包。 考虑到golang有垃圾回收机制,如果该连接被程序引用着怎么办?是否也会自动关闭?想想这应该是不可能的,那这是不...