问一个有关使用golang开发连接池以使用get和put操作<-chan和chan <-conn
将连接放置在缓冲通道中的问题当前,还有一个功能可以定期检查连接是否有效。定期执行此操作,即取出支票并将其存储在其中,但这会在检查时影响正常的获取和放置操作吗?
或者还有其他数据结构值得推荐吗?
非常感谢您!
答案 0 :(得分:0)
...会在检查时影响正常的获取和放置操作
因此,当前您从频道中弹出一个连接,并检查它是否在线。 在检查此连接时,该连接将无法用于该池通道上的其他订户。
我猜您是在问这是否会影响进行此检查时的任何并发操作?
我认为不会,因为池的“用户”还必须从通道弹出一个连接才能使用该连接。 因此,不应执行并发操作。
这当然取决于您是否具有“插入”功能,该功能会从通道弹出连接,执行命令,然后仅在完成所有操作后将其推回通道。