线程池工具类
如何合理设置线程池核心参数
ThreadPoolUtils.java
public class ThreadPoolUtils {
/**
* 线程池
*/
private static ExecutorService threadPool;
static {
// 配置线程池
int availableProcessors = Runtime.getRuntime().availableProcessors();
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder().setNameFormat("pmj-pool-%d").build();
threadPool = new TraceThreadPoolExecutor(availableProcessors, availableProcessors * 10, 0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<>(availableProcessors * 100), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
}
/**
* 获取同步线程池
*
* @return
*/
public static ExecutorService getThreadPool() {
return threadPool;
}
}
使用实例
//异步执行处理
ThreadPoolUtils.getThreadPool().submit(() -> {
long startTime = System.currentTimeMillis();
try{
//要执行的代码逻辑
}catch(Exception e){
//打印错误日志
}finally {
//释放分布式锁
JedisUtil.del(lockKey);
}
System.currentTimeMillis() - startTime;
});
还没有评论,来说两句吧...