golang连接池优化

Optimization of golang connection pool

问一个关于使用golang开发连接池将连接放入带有get和put操作的缓冲通道的问题<-chan和chan <- conn

目前还有定时检测连接是否有效的功能。每隔一定时间做这个,就是把check取出来存进去,但是check的时候会不会影响正常的get和put操作呢?

或者有其他数据结构可以推荐吗?

非常感谢!

... will it affect the normal get and put operation when checking

所以目前您从频道弹出一个连接并检查它是否在线。 在进行检查时,该连接将无法供该池频道上的其他订阅者使用。

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

我认为不会,因为池的 'user' 还必须从通道弹出连接才能使用该连接。 所以并发操作不应该发生。

这当然取决于您有一个 'Put' 函数,该函数从通道弹出连接,执行命令,然后仅在所有操作完成后将其推回通道。