分享
 
 
 

基本对象池的使用

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

/**

* <pTitle: 基本对象池(org.apache.commons.pool.impl.GenericObjectPool)的使用 </p

* <pDescription:

* 测试 org.apache.commons.pool.impl.GenericObjectPool 和 org.apache.commons.pool.PoolableObjectFactory的使用.</p

* <p基本对象池的使用,

* <LIclass TestGenericObjectPool 表示一个测试使用对象池的具体例子

* <LIclass WdzPoolableObjectFactory 表示1个自己定义的生成对象的工厂

* <LIclass Student 表示 需要使用对象池来维护的类</p

* <p

* 引用了 common-collcetions-2.1 ,commons-pool-1.1

* </p

* <pCopyright: Copyright (c) 2004</p

* <pCompany: netsky</p

* @author wdz( hotmail =wdz123@hotmail.com)

* @version 1.0

* @see {@link TestGenericObjectPool},

* org.apache.commons.pool.impl.GenericObjectPool,org.apache.commons.pool.PoolableObjectFactory

*/

public class Student {

private String sex;

private String name;

private int studentid;

private int age;

public Student() {

}

public static void main(String[] args) {

Student student1 = new Student();

}

public String getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getStudentid() {

return studentid;

}

public void setStudentid(int studentid) {

this.studentid = studentid;

}

public void clear() {

studentid = 0;

name = "";

age = 0;

sex = "";

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public String toString() {

return "id =" + studentid + ",name =" + name + ",age=" + age + ",sex=" +

sex;

}

}

Class WdzPoolableObjectFactory --code

package impl_genericobjectpool_test;

import org.apache.commons.pool.impl.*;

import org.apache.commons.pool.*;

/**

* <pTitle: 基本对象池(org.apache.commons.pool.impl.GenericObjectPool)的使用 </p

* <pDescription:

* 测试 org.apache.commons.pool.impl.GenericObjectPool 和 org.apache.commons.pool.PoolableObjectFactory的使用.</p

* <p基本对象池的使用,

* <LIclass TestGenericObjectPool 表示一个测试使用对象池的具体例子

* <LIclass WdzPoolableObjectFactory 表示1个自己定义的生成对象的工厂

* <LIclass Student 表示 需要使用对象池来维护的类</p

* <p

* 引用了 common-collcetions-2.1 ,commons-pool-1.1

* </p

* <pCopyright: Copyright (c) 2004</p

* <pCompany: netsky</p

* @author wdz( hotmail =wdz123@hotmail.com)

* @version 1.0

*/

public class WdzPoolableObjectFactory

implements PoolableObjectFactory {

/**

* 创建对象实例。同时可以分配这个对象适用的资源。

* **/

public Object makeObject() throws Exception {

return new Student();

};

/**

* 销毁对象,实际上提供了释放对象占用资源的接口。

* destroyObject is invoked on every instance when it is being "dropped"

* from the pool (whether due to the response from validateObject,

* or for reasons specific to the pool implementation.)

* */

public void destroyObject(Object obj) throws Exception {

}

/***

* 这个方法一般在 activateObject 方法执行后调用

* 检查对象的有效性

* validateObject is invoked in an implementation-specific fashion to

* determine if an instance is still valid to be returned by the pool.

* It will only be invoked on an "activated" instance.

* **/

public boolean validateObject(Object obj) {

return true;

}

/**

* 激活一个对象。

* activateObject is invoked on every instance before it is returned from the pool.

* **/

public void activateObject(Object obj) throws Exception {

}

/**

* 挂起一个对象

* passivateObject is invoked on every instance when it is returned to the pool

* **/

public void passivateObject(Object obj) throws Exception {

if (obj instanceof Student) {

( (Student) obj).clear();

}

}

}

package impl_genericobjectpool_test;

import org.apache.commons.pool.impl.*;

import org.apache.commons.pool.*;

/**

* <pTitle: 基本对象池(org.apache.commons.pool.impl.GenericObjectPool)的使用 </p

* <pDescription:

* 测试 org.apache.commons.pool.impl.GenericObjectPool 和 org.apache.commons.pool.PoolableObjectFactory的使用.</p

* <p基本对象池的使用,

* <LIclass TestGenericObjectPool 表示一个测试使用对象池的具体例子

* <LIclass WdzPoolableObjectFactory 表示1个自己定义的生成对象的工厂

* <LIclass Student 表示 需要使用对象池来维护的类</p

* <p

* 引用了 common-collcetions-2.1 ,commons-pool-1.1

* </p

* <pCopyright: Copyright (c) 2004</p

* <pCompany: netsky</p

* @author wdz( hotmail =wdz123@hotmail.com)

* @version 1.0

*/

public class TestGenericObjectPool {

private void testBorrowObject(GenericObjectPool pool, int kk) {

try {

Student[] student = new Student[10];

for (int i = 0; i < 10; i++) {

student[i] = (Student) (pool.borrowObject());

student[i].setStudentid(i * 10000 + kk);

student[i].setAge(i * 1000 + kk);

student[i].setName("wdzname" + i * 100 + kk);

}

for (int i = 0; i < 10; i++) {

System.out.println("student[" + i + "]=" + student[i]);

pool.returnObject(student[i]);

if (i == 9) {

//察看对象回到对象池的状态

System.out.println("****student[9]=" + student[9]);

}

}

}

catch (Exception ex) {

ex.printStackTrace();

}

}

public TestGenericObjectPool() {

org.apache.commons.pool.PoolableObjectFactory factory = new

WdzPoolableObjectFactory();

GenericObjectPool pool = new GenericObjectPool(factory, 4000 * 10,

GenericObjectPool.WHEN_EXHAUSTED_GROW, 3000 * 10, true, true);

System.out.println("group1");

testBorrowObject(pool, 1);

System.out.println("group2");

testBorrowObject(pool, 2);

}

public static void main(String[] args) {

TestGenericObjectPool test = new TestGenericObjectPool();

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有