我正在寻找Java中的对象池的现代实现.我可以看到apache commons one,但说实话,我宁愿使用泛型,以及来自更新版本java的并发内容.
公共泳池真的运作良好吗?代码看起来很漂亮,呃,丑陋.
我需要一些允许自定义活动验证等的东西.
谢谢!
我想知道,是否可以创建一个对象池?所以我可以从池中取出一个对象,一旦我完成了工作,我就可以将它放入池中.
我正在GenericObjectPool通过放入Cipher池进行研究,以便可以重复使用.
GenericObjectPool<Cipher> pool;
CipherFactory factory = new CipherFactory();
this.pool = new GenericObjectPool<Cipher>(factory);
pool.setMaxTotal(10);
pool.setBlockWhenExhausted(true);
pool.setMaxWaitMillis(30 * 1000);
Run Code Online (Sandbox Code Playgroud)
CipherFactory
public class CipherFactory extends BasePooledObjectFactory<Cipher> {
private boolean running = false;
@Override
public Cipher create() throws Exception {
return Cipher.getInstance("DESede/CBC/NoPadding");
}
@Override
public PooledObject<Cipher> wrap(Cipher arg0) {
return new DefaultPooledObject<Cipher>(arg0);
}
@Override
public boolean validateObject(PooledObject<Cipher> p) {
//Ensures that the instance is safe to be returned by the pool
return true;
}
@Override
public void destroyObject(PooledObject<Cipher> p) { …Run Code Online (Sandbox Code Playgroud)