ThreadPoolUtil
package com.box.common.core.thread;
import java.util.Collection;
import java.util.List;
import java.util.concurrent.*;
/**
* 线程池工具类
*/
public class ThreadPoolUtil {
/** 工具类,构造方法私有化 */
private ThreadPoolUtil() {
super();
}
// 线程池核心线程数
private final static Integer COREPOOLSIZE = 5;
// 最大线程数
private final static Integer MAXIMUMPOOLSIZE = 10;
// 空闲线程存活时间
private final static Integer KEEPALIVETIME = 180;
// 线程等待队列
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 rs
* @return
*/
public static List<Future<?>> submits(List rs) {
try {
List list = threadPool.invokeAll(rs);
return list;
} catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}
/**
* 向线程池提交一个任务,不关心处理结果
* @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();
}
}
小蚊子大人
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步