手动创建线程池使用ThreadPoolExecutor创建对象
ThreadPoolExecutor pool = new ThreadPoolExecutor(参数)
参数1:核心线程数
参数2:线程池总数量
参数3:临时线程空闲时间
参数4:临时线程空闲单位
参数5:阻塞队列
参数6:创建线程方式
参数7:任务拒绝策略
ThreadPoolExecutor pool = new ThreadPoolExecutor(
3,//核心线程数
10,//线程池总数量
60, // 临时线程空闲时间
TimeUnit.SECONDS, // 临时线程空闲单位
new ArrayBlockingQueue<>(5),// 阻塞队列
Executors.defaultThreadFactory(),//创建线程方式
new ThreadPoolExecutor.AbortPolicy()//任务拒绝策略
);
核心线程数:线程池中一直存在的线程,除非线程池关闭,才会释放
线程池总数:当前线程池里最多容纳的线程数量
临时线程空闲时间:临时线程空闲的时间
临时线程空闲单位:临时线程空闲的单位(采用TimeUnit表示)
阻塞队列:线程池线程满了以后,将任务放进队列等待,采用ArrayBlockingQueue
创建线程方式:推线使用默认 Executors.defaultThreadFactory()
任务拒绝策略:推线使用默认 new ThreadPoolExecutor.AbortPolicy()