github.com/fatih/pool
这个连接池主要的功能是缓存指定数量的连接数,新建连接池的时候,需要指定三个参数:池中初始的连接数,最大连接数和连接的工厂方法。
在连接的初始化函数中根据初始连接数构建指定个数的连接,然后get函数是从连接池中拿连接,如果池中有连接,则返回缓存的连接,如果没有连接了,则直接构建新的连接;在put函数中如果池中的连接未满,则将此连接放在池中,如果已满,则直接关闭掉。
关于缓存连接使用的数据结构是golang的channel
database/sq