java对象池的操作(与大家分享下)

yaojj_147258369 2010-09-10 09:46:29
import org.apache.commons.pool.PoolableObjectFactory;
public class ObjectPoolFactoryDome implements PoolableObjectFactory {
public void activateObject(Object arg0) throws Exception {
System.err.println("激活对象:" + arg0);
}

public void destroyObject(Object arg0) throws Exception {
System.err.println("销毁: " + arg0);
}

public Object makeObject() throws Exception {
List li=new ArrayList();
li.add(0, "1");
System.err.println("添加对象: " + li);
return li;
}

public void passivateObject(Object arg0) throws Exception {
System.err.println("挂起对象: " + arg0);
}

public boolean validateObject(Object arg0) {
boolean result = (Math.random() > 0.5);
System.err.println("校验一个具体的对象是否仍然有效: "+ arg0 + " : " + result);
return result;

}
}
public static void main(String[] args) {
List obj = null;
PoolableObjectFactory factory = new ObjectPoolFactoryDome();//通过PoolableObjectFactory接口的实例ObjectPoolFactoryDome获得一个池工厂;
ObjectPoolFactory poolFactory = new StackObjectPoolFactory(factory);//用池工厂作为参数通过StackObjectPoolFactory实例得到一个池对象
ObjectPool pool = poolFactory.createPool();//创建池对象
try {
obj = (List)pool.borrowObject();//借出对象
System.out.println("从对象池中取出对象:"+obj.get(0));
System.out.println("返回已经从此对象池中借出的对象的总数:"+pool.getNumActive());
System.out.println("返回当前在此对象池中休眠的对象的数目:"+pool.getNumIdle());
pool.returnObject(obj);//归还对象的同时会调用挂起方法,将对对象处于挂起状态;
obj = null;//明确地设为null,作为对象已归还的标志
}
catch (Exception e) {
e.printStackTrace();
}
finally {
try{
if (obj != null) {//避免将一个对象归还两次
pool.returnObject(obj);//归还对象
}else{
pool.close();//在归还了的情况下关闭当前对象池(销毁)
System.out.println("对象已销毁");
}
}
catch (Exception e){
e.printStackTrace();
}
}
}
...全文
255 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaojj_147258369 2010-09-14
  • 打赏
  • 举报
回复
5楼,我自己些的好吧,我直接从编辑器里考出来的,不知传上去就成那样了.
tracyXiaoAi 2010-09-10
  • 打赏
  • 举报
回复
看起来好吃力呀
  • 打赏
  • 举报
回复
这个应该是他从某个 CSDN 帖子复制过来的。

一个空格有病一样地变为三个空格,是 CSDN 前几年的特色!
afunti 2010-09-10
  • 打赏
  • 举报
回复
大哥,这东西写上来也没法看呀。。。。。。。没法看
龙四 2010-09-10
  • 打赏
  • 举报
回复
排版 排版
zhoujianghua_2008 2010-09-10
  • 打赏
  • 举报
回复
大哥,这东西写上来也没法看呀。。。。。。。没法看

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧