自定义线程池工具类
Posted 爱上口袋的天空
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自定义线程池工具类相关的知识,希望对你有一定的参考价值。
import java.util.concurrent.*;
/**
* 线程池工具类:
* 处理项目中需要异步处理的任务,例如日志服务,监控服务等
* @author zsc
* @datetime 2017年11月22日 上午11:04:09
*/
public class ThreadPoolUtil {
/** 工具类,构造方法私有化 */
private ThreadPoolUtil() {super();};
// 线程池核心线程数
private final static Integer COREPOOLSIZE = 3;
// 最大线程数
private final static Integer MAXIMUMPOOLSIZE = 10;
// 空闲线程存活时间
private final static Integer KEEPALIVETIME = 3 * 60;
// 线程等待队列
private static BlockingQueue<Runnable> queue = new ArrayBlockingQueue<>(10);
// 线程池对象
private static ThreadPoolExecutor threadPool = new ThreadPoolExecutor(COREPOOLSIZE, MAXIMUMPOOLSIZE,
KEEPALIVETIME, TimeUnit.SECONDS, queue, new ThreadPoolExecutor.AbortPolicy());
/**
* 向线程池提交一个任务,返回线程结果
* @param r
* @return
*/
public static Future<?> submit(Callable<?> r) {
return threadPool.submit(r);
}
/**
* 向线程池提交一个任务,不关心处理结果
* @param r
*/
public static void execute(Runnable r) {
threadPool.execute(r);
}
/** 获取当前线程池线程数量 */
public static int getSize() {
return threadPool.getPoolSize();
}
/** 获取当前活动的线程数量 */
public static int getActiveCount() {
return threadPool.getActiveCount();
}
}
以上是关于自定义线程池工具类的主要内容,如果未能解决你的问题,请参考以下文章
newCacheThreadPool()newFixedThreadPool()newScheduledThreadPool()newSingleThreadExecutor()自定义线程池(代码片段