根据您的描述,在我看来,您需要的是 连接
的池,而不是对象的池。为了简单的线程安全,只需将可重用的连接保留在一个
Queue.Queue实例中,将其称为
pool。当线程实例化一个连接包装对象时,该对象通过其连接来获取连接
pool.get()(如果当前没有可用的连接,该对象将自动排队等待,并在连接准备就绪时将其出队);当对象使用其连接完成时,它会通过将其放回池中
pool.put。
除了
Queue.Queue已经提供给您的功能之外,其中几乎没有通用的通用功能,因此没有模块是众所周知的,也就不足为奇了-
当包含大约6行功能代码的模块很难被广泛使用总而言之(例如,调用用户提供的连接工厂来提前或及时填充队列,直到达到某个最大数量-
无论如何,这通常不是一个很大的附加值)。毕竟,“厚胶”将标准库模块的基础功能厚实地包装而没有实质性的附加值,毕竟是体系结构上的缺点;-)。



