同时调用listener.Accept()

时间:2016-03-26 05:34:33

标签: go tcp

假设我们正在侦听TCP端口(例如使用listener, err := net.Listen("tcp", ":8081")),是否可以同时在不同的goroutine中调用listener.Accept()?是否有助于最大限度地提高接受速度?

1 个答案:

答案 0 :(得分:4)

net.Listener是一个幕后的FileDescriptor。 Accept()使用Plan9机器,在功能和保护连接时使用readLock保护它 - newFD。所以它看起来很安全。而且由于Lock是只读的,没有独家的,你甚至可以在我的心中同时获得一些加速呼叫接受。

相关问题