参考文献

对象池模式

  • 重用和共享创建成本高昂的对象。
  • 当客户端请求可重用对象时,池将执行以下操作:
    • 搜索可用的可重用对象,如果找到,它将返回给客户端。
    • 如果没有找到可重用对象,那么它会尝试创建一个新对象。如果此操作成功,新的可重用对象将返回给客户端。
    • 如果池无法创建新的可重用对象,则池将等待,直到释放可重用对象

组件

  • Reusable(可重复使用的资源) :包装有限的资源,将由多个客户端在有限的时间内共享。

  • Client : 使用可重用类型的实例

  • ReusablePool: 管理供客户端使用的可重用对象,创建和管理对象池

实现注意事项

  • Limited number of resources in the pool

    • 内资源数量有限
  • Handling situations when creating a new resource fails

    • 创建新资源失败的处理情况
  • Syncronization

    • 同步
  • Expired resources(unused but still reserved)

    • 过期资源(未使用但仍保留)

使用方法

  • 建议使用Apache Common Pool2来实现