3
我有一个定义为bean的弹簧CommonsPoolTargetSource
。我试图了解如何合并工作,以及何时将对象返回池中。Spring ObjectPooling&线程阻塞
特别是,如果我有一个工人,这需要一个池对象,并调用它的两种方法,如下所示:
public class MyWorker {
@Resource
Foo pooledFoo;
void doWork()
{
pooledFoo.doStepA();
pooledFoo.doStepB();
}
}
从我可以在我运行测试看,pooledFoo
不实际上是一个Foo
的实例,但是由池提供的代理。在流量以上将是:
- 调用doStepA()上
foo
从池中检索一个值(阻塞线程,如果一个是不可用的), - doStepA是在pooledFoo
- 当被执行doStepA完成,
pooledFoo
实例返回到池中 - 控制返回到
doWork
方法,并且该方法继续
如果这是正确的(PL轻松地告诉我,如果它不是),是否公平地假设被调用时从池中返回pooledFoo
,将不会是doStepA()
返回的同一个实例?
谢谢 - 非常明确的答案。 – 2010-11-06 16:57:48