用go开发长连接时, 是要每个socket开两个goroutine去操作吗

想问一下是要每个socket都开两个goroutine分别对应读和写的操作,还是弄一个goroutine池开一定数量的goroutine(比如Cpu的核心数量)去统一读写,这样哪个效率高点,还是差别不大?

阅读 2.5k
1 个回答

每个链接开两个goroutine是比较可行的方案。

因为经常会涉及到broadcast,如果只有cpu数的goroutine,对于高频率的broadcast是处理没有每个开两个快的。

而且goroutine的Memory和cpu消耗都不是很高。

所以建议每个链接开两个, 也方便定点推送。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题