【发布时间】:2011-08-04 14:37:55
【问题描述】:
我有一个服务需求。要求规定我必须获得最多 N 个服务实例。如果没有可用的实例,则阻止/等待一个实例被释放,然后返回可用的实例。这与集中式生活方式非常相似。
我对 Pooled Lifestyle 的理解是:
- 首次请求的 N 个对象将被创建(其中 N 是最大池大小)
- 收到对象请求后,池化生活方式最初会从池中返回一个对象,直到池中的所有对象都“正在使用”
- 当所有对象都“正在使用”时,会创建额外的对象(超出最大池大小的范围)。
- 当对象被释放时,它们要么被销毁(如果大于最大池大小),要么被返回到池中(如果小于最大池大小)。
这与我想要的行为相似,但略有不同。不要创建超过最大池大小的对象,等待“正在使用”的对象被释放,然后返回一个可用的对象。
有什么想法吗?这可以在不阻塞不同线程上的其他容器解析的情况下完成吗?
【问题讨论】:
标签: castle-windsor