/**
* ThreadPoolExecutor 创建方式(推荐)
* corePoolSize 核心线程数
* maximumPoolSize 最大线程数
* keepAliveTime 线程没有任务执行时最多保持多久时间会终止
* workQueue 一个阻塞队列,用来存储等待执行的任务,可用列队有:ArrayBlockingQueue和PriorityBlockingQueue使用较少,一般使用LinkedBlockingQueue和SynchronousQueue。线程池的排队策略与BlockingQueue有关。
* threadFactory 用于设置创建线程的工厂,可以通过线程工厂给每个创建出来的线程做些更有意义的事情
* handler 表示当拒绝处理任务时的策略
*/
private ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(20, 50, 5,
TimeUnit.MINUTES, new LinkedBlockingQueue<>(10),
new BasicThreadFactory.Builder().namingPattern("task-thread-pool-%d").daemon(true).build(), new ThreadPoolExecutor.AbortPolicy());
threadPoolExecutor.execute(()->{
//需要多线程处理的业务代码
});