我需要汇集到某些资源的连接。实际资源对于本次讨论并不重要。然而需要注意的是,这些连接不是线程安全的,因此需要池化作为连接等是一项昂贵的操作。
我最初的想法是使用一个大池来管理连接超时并杀死它们等。但是问题是每个连接可能包含不同的参数,因此在连接时必须传递参数并让池使用这个尝试找到具有相同值的连接。如果它(池)找不到对象,那么它当然需要创建一个传递参数的实例等。
然而,Apache Commons Pools 和其他类似的库没有任何此类概念的规定。有没有包含这种概念的库。我想在 Pool 下面保存一个实例列表,当一个 take 请求进来时,它使用一些匹配器循环它的可用对象并返回第一个匹配的对象。
请注意,无法更改连接对象的参数,因此无法更改问题和提出问题的原因。
- 有没有更好的方法来解决这个问题?
- 是否有执行上述操作的池库?
- 我应该自己写吗?