孤独海岸线 发表于 2017-12-25 08:33:11

Java--对象池化技术 org.apache.commons.pool2.ObjectPool

package com.seeyon.objectPool;  

  

import org.apache.commons.pool2.ObjectPool;  

import org.apache.commons.pool2.impl.GenericObjectPool;  

  

/**  * Created by yangyu on 16/12/26.
*/  

  
/**
  * org.apache.commons.pool2.ObjectPool对象池的使用
  * 直接apache使用对象池,可以实现对象池化技术
  */

  
public>  public static void main(String[] args) throws InterruptedException {
  /**
  * 创建对象工厂
  */
  ObjectFactory objectFactory = new ObjectFactory();
  /**
  * 创建一个普通的对象池
  */
  ObjectPool<ObjectFactory.Computer> objectPool = new GenericObjectPool(objectFactory);
  

  /**
  * 创建第一个线程
  */
  Thread t1 = new Thread(() -> {
  try {
  /**
  * 从对象池中获取对象
  */
  ObjectFactory.Computer computer = objectPool.borrowObject();
  System.out.println(Thread.currentThread().getId() + ":" + computer);
  /**
  * 用完后将对象放回对象池中
  */
  objectPool.returnObject(computer);
  } catch (Exception e) {
  e.printStackTrace();
  }
  });
  

  t1.start();
  t1.join();
  

  new Thread(() -> {
  try {
  /**
  * 再次从对象池中获取对象,你会发现获取的是同一个对象,说明对象池化技术成功
  */
  System.out.println(Thread.currentThread().getId() + ":" + objectPool.borrowObject());
  } catch (Exception e) {
  e.printStackTrace();
  }
  }).start();
  

  }
  
}
页: [1]
查看完整版本: Java--对象池化技术 org.apache.commons.pool2.ObjectPool