为了账号安全,请及时绑定邮箱和手机立即绑定

同时调用 listener.Accept()

同时调用 listener.Accept()

Go
回首忆惘然 2021-12-27 17:44:28
假设我们正在侦听 TCP 端口(listener, err := net.Listen("tcp", ":8081")例如使用),是否可以同时调用listener.Accept()不同的 goroutines?它有助于最大限度地提高接受速度吗?
查看完整描述

1 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

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


查看完整回答
反对 回复 2021-12-27
  • 1 回答
  • 0 关注
  • 291 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信