首先要定义线程池的一些参数
int corePoolSize=5; // 核心线程数 int maximumPoolSize=10; // 最大线程数 非核心线程数=最大线程池数-核心线程池数 long keepAliveTime=1; // 非核心线程池最大空闲时间 TimeUnit unit=TimeUnit.MINUTES; // 非核心线程池最大空闲时间单位 BlockingQueue<Runnable> worker=new LinkedBlockingDeque<>(40); // 阻塞队列 ThreadFactory threadFactory= Executors.defaultThreadFactory(); // 线程池工厂 RejectedExecutionHandler handler=new ThreadPoolExecutor.AbortPolicy(); // 异常处理策略
创建线程池:
ThreadPoolExecutor poolExecutor=new ThreadPoolExecutor(corePoolSize,maximumPoolSize,keepAliveTime,unit,worker,threadFactory,handler);
Demo案例:
public static void main(String[] args) {
int corePoolSize=5; // 核心线程数
int maximumPoolSize=10; // 最大线程数 非核心线程数=最大线程池数-核心线程池数
long