package com.dy.common.threadPool;
|
|
|
public class TreadPoolFactory {
|
|
private static ThreadPool.Pool pool_short ;//短工作任务线程池,线程工作用时较短
|
private static ThreadPool.Pool pool_long ;//长工作任务线程池,线程工作用时较长
|
|
/**
|
* 初始化线程池
|
* @param threadPoolName 线程池和线程名称
|
* @param maxThreadNum 线程池最大线程数 ,若为-1,不受限制
|
* @param minThreadNum 线程池最小线程数,或初始线程数
|
* @param freeTimeout 空闲线程超时时长(秒)
|
* @param busyTimeout 忙碌线程超时时长(秒),若为-1,不受限制
|
* @return 线程池实例
|
*/
|
public final static void initThreadPoolShort(String poolName,
|
int maxNum,
|
int minNum,
|
long freeTimeout,
|
long busyTimeout) throws Exception {
|
if(pool_short!= null){
|
throw new Exception("线程池不能重复初始化!");
|
}
|
if(pool_short == null){
|
pool_short = new ThreadPoolImp().new MyThreadPool(poolName, maxNum, minNum, freeTimeout, busyTimeout);
|
}
|
}
|
|
/**
|
* 初始化线程池
|
* @param threadPoolName 线程池和线程名称
|
* @param maxThreadNum 线程池最大线程数,若为-1,不受限制
|
* @param minThreadNum 线程池最小线程数,或初始线程数
|
* @param freeTimeout 空闲线程超时时长(秒)
|
* @param busyTimeout 忙碌线程超时时长(秒),若为-1,不受限制
|
* @return 线程池实例
|
*/
|
public final static void initThreadPoolLong(String poolName,
|
int maxNum,
|
int minNum,
|
long freeTimeout,
|
long busyTimeout) throws Exception {
|
if(pool_long!= null){
|
throw new Exception("线程池不能重复初始化!");
|
}
|
if(pool_long == null){
|
pool_long = new ThreadPoolImp().new MyThreadPool(poolName, maxNum, minNum, freeTimeout, busyTimeout);
|
}
|
}
|
/**
|
* 得到唯一线程池实例
|
* @param dataSourceName
|
* @return
|
* @throws Exception
|
*/
|
public final static ThreadPool.Pool getThreadPoolShort()
|
throws Exception {
|
if (pool_short == null) {
|
throw new Exception("得到线程池前首先必须初始化!");
|
}
|
return pool_short ;
|
}
|
/**
|
* 得到唯一线程池实例
|
* @param dataSourceName
|
* @return
|
* @throws Exception
|
*/
|
public final static ThreadPool.Pool getThreadPoolLong()
|
throws Exception {
|
if (pool_long == null) {
|
throw new Exception("得到线程池前首先必须初始化!");
|
}
|
return pool_long ;
|
}
|
|
}
|