本网页所有文字内容由 imapbox邮箱云存储,邮箱网盘, iurlBox网页地址收藏管理器 下载并得到。
ImapBox 邮箱网盘 工具地址: https://www.imapbox.com/download/ImapBox.5.5.1_Build20141205_CHS_Bit32.exe
PC6下载站地址:PC6下载站分流下载
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox 网页视频 工具地址: https://www.imapbox.com/download/ImovieBox4.7.0_Build20141115_CHS.exe
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
2013年,Apache Commons Pool 2.0 发布,这是一个完全重写的对象池的实现。实现的代码和原来差异很大,原来的一些例子就不能用了。按照上面的例子,用pool2的类和方法重写下。 ApacheCommons Pool 2.0 代码如下: package test.ffm83.commons.pool; import java.text.SimpleDateFormat; import java.util.Date; import org.apache.commons.lang.StringUtils; import org.apache.commons.pool2.BasePooledObjectFactory; import org.apache.commons.pool2.PooledObject; import org.apache.commons.pool2.impl.DefaultPooledObject; import org.apache.commons.pool2.impl.GenericObjectPool; /** * commons pool的简单实用,基于2.x版本 * 1. Factory BasePooledObjectFactory * 2. Pool的配置 就是pool * 3. Pool实例 Resource * @author范芳铭 */ public classPool2BaseUsage { public static void main(String[] args) { finalGenericObjectPool<Resource> pool = new GenericObjectPool<Resource>( newTestPoolableObjectFactory()); pool.setMaxTotal(2); for (int i = 0; i < 6; i++) { new Thread(new Runnable() { @Override public void run() { try { Resourceobj = pool.borrowObject();// 注意,如果对象池没有空余的对象,那么这里会block System.out.println(StringUtils.rightPad(obj.toString()+ ",获取对象", 50,"-")); Thread.sleep(5000); pool.returnObject(obj);//归还连接池资源 System.out.println(StringUtils.leftPad(obj.toString()+ ",归还对象", 50, "-")); }catch(Exception e) { e.printStackTrace(); } } }).start(); } } /** * commons pool的简单实用,基于2.x版本 * 1.x的 BasePoolableObjectFactory 类修改为 BasePooledObjectFactory * @author范芳铭 */ static classTestPoolableObjectFactory extends BasePooledObjectFactory<Resource>{ @Override public Resource create() throws Exception { return new Resource(); } @Override publicPooledObject<Resource> wrap(Resource resource) { return newDefaultPooledObject<Resource>(resource); } /** * When an object is returned to the pool,clear the buffer. */ @Override public voidpassivateObject(PooledObject<Resource> resource) { //resource.getObject().setRid(-1); } } static class Resource { public static int id; private int rid; public Resource() { synchronized (this) { rid = id++; } } public int getRid() { return rid; } public void setRid(int rid){ this.rid = rid; } @Override public String toString() { SimpleDateFormatdf = newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式 Stringstr = df.format(newDate()) + ","+ "id:"+ rid; return str; } } } 运行效果如下: 2014-12-19 15:51:58,id:1,获取对象——————— 2014-12-19 15:51:58,id:0,获取对象——————— 2014-12-19 15:52:03,id:0,获取对象——————— ———————2014-12-1915:52:03,id:0,归还对象 ———————2014-12-1915:52:03,id:1,归还对象 2014-12-19 15:52:03,id:1,获取对象——————— ———————2014-12-1915:52:08,id:0,归还对象 2014-12-19 15:52:08,id:0,获取对象——————— ———————2014-12-1915:52:08,id:1,归还对象 2014-12-19 15:52:08,id:1,获取对象——————— ———————2014-12-1915:52:13,id:0,归还对象 ———————2014-12-1915:52:13,id:1,归还对象
阅读和此文章类似的: 程序员专区