假设我们正在侦听TCP端口(例如使用listener, err := net.Listen("tcp", ":8081")
),是否可以同时在不同的goroutine中调用listener.Accept()
?是否有助于最大限度地提高接受速度?
答案 0 :(得分:4)
net.Listener是一个幕后的FileDescriptor。 Accept()使用Plan9机器,在功能和保护连接时使用readLock保护它 - newFD。所以它看起来很安全。而且由于Lock是只读的,没有独家的,你甚至可以在我的心中同时获得一些加速呼叫接受。