common-pool2讲解。

更新时间:2023-05-12 01:42:09 阅读: 评论:0

common-pool2讲解。
现在很多第三⽅框架都使⽤common-pool2作为对象池。
这个框架有⼏个核⼼:
⼀:⼯作类,⽐如说connetion,⽐如说⼀个可以⼲活(work)的Person。
⼆:⼯⼚类,⽣产Person的⼯⼚。⼯⼚类是基于PooledObjectFactory->BaPooledObjectFactory的三:配置类,对象池活跃对象个数等信息都需要配置:所遇需要配置类,基于GenericObjectPoolConfig 四:对象池Pool,GenericObjectPool
实例讲解:
1 Person类。
public class Person {
private String name;
public String getName() {
return name;
}
public void tName(String name) {
this.name = name;
}
public void work() {
System.out.println(name + " 在⼲活 ");
}
}
2⼯⼚类
public class PersonFactory extends BaPooledObjectFactory<Person> {
public Person create() throws Exception {
String name = Math.random() + "";
Person p = new Person();
p.tName(name);
return p;
}
public PooledObject<Person> wrap(Person obj) {
return new DefaultPooledObject<Person>(obj);
}
}
3配置
public class MyPoolConfig extends GenericObjectPoolConfig {
//在构造⽅法中可以配置参数,⼀般会在spring的xml⽂件中配置bean的⽅式配置对象池信息
public MyPoolConfig() {
super();
}
}
4测试运⾏
public class Main {
public static void main(String[] args) throws Exception {
// 实例化配置类
MyPoolConfig myPoolConfig = new MyPoolConfig();
/
/ 设置最⼤⼯作⼈数
myPoolConfig.tMaxTotal(10);
// new ⼀个对象池。
GenericObjectPool<Person> personPool = new GenericObjectPool<>(    new PersonFactory(), myPoolConfig);
// 测试1;
while (true) {
// 取出对象进⾏⼯作,没有释放对象。
Person p = personPool.borrowObject();
p.work();
// 代码运⾏后显⽰,最多有10个不同的⼈在⼯作
}
}
}
==
==

本文发布于:2023-05-12 01:42:09,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/885754.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:对象   配置   需要   信息   个数   活跃
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图