猿问

同时调用 listener.Accept()

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


回首忆惘然
浏览 292回答 1
1回答

慕的地6264312

net.Listener 是引擎盖下的 FileDescriptor。Accept() 使用 Plan9 机制,它在函数和生成连接时使用 readLock 保护它 - newFD。所以看起来很安全。而且由于Lock是只读的,没有独占性,你甚至可以在我的脑海中同时获得一些加速调用accept。
随时随地看视频慕课网APP

相关分类

Go
我要回答