优化golang连接池

时间:2018-07-31 02:40:12

标签: go grpc pool

问一个有关使用golang开发连接池以使用get和put操作<-chan和chan <-conn

将连接放置在缓冲通道中的问题

当前,还有一个功能可以定期检查连接是否有效。定期执行此操作,即取出支票并将其存储在其中,但这会在检查时影响正常的获取和放置操作吗?

或者还有其他数据结构值得推荐吗?

非常感谢您!

1 个答案:

答案 0 :(得分:0)

  

...会在检查时影响正常的获取和放置操作

因此,当前您从频道中弹出一个连接,并检查它是否在线。 在检查此连接时,该连接将无法用于该池通道上的其他订户。

我猜您是在问这是否会影响进行此检查时的任何并发操作?

我认为不会,因为池的“用户”还必须从通道弹出一个连接才能使用该连接。 因此,不应执行并发操作。

这当然取决于您是否具有“插入”功能,该功能会从通道弹出连接,执行命令,然后仅在完成所有操作后将其推回通道。