线程工具类
public class ExecutorServiceUtil {
// 设置线程名称,其他方式有CustomizableThreadFactory、BasicThreadFactory
public static ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("ExecutorUtil-pool-%d").build();
// 使用ThreadPoolExecutor创建线程池
// Runtime.getRuntime().availableProcessors() 获取可用的计算资源
// 400:最大线程池大小;0L:线程最大空闲时间;TimeUnit.MILLISECONDS:时间单位;new LinkedBlockingQueue<Runnable>(1024):线程等待队列;namedThreadFactory:线程创建工厂;new ThreadPoolExecutor:拒绝策略,AbortPolicy()默认策略
private static final ExecutorService executorService = new ThreadPoolExecutor(
2*Runtime.getRuntime().availableProcessors(),
400, 0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
public static void execute (Runnable runnable){
executorService.execute(runnable);
}
public static void callable(FutureTask futureTask){
executorService.submit(futureTask);
}
}
使用:
try {
ExecutorServiceUtil.execute(() -> {
// 开辟线程执行代码
}
}catch(Exception e){
log.error("--------");
}