ThreadPoolExecutor线程池基础了解

86 阅读1分钟

ThreadPoolExecutor

简单使用

可以使用Executors工具类可以创建

 Executors.newCachedThreadPool();  // 它这个方法中也是去new了一个ThreadPoolExecutor对象、只不过给你设置好了默认属性

ThreadPoolExecutor七大参数

 int corePoolSize,   // 核心线程
 int maximumPoolSize, // 最大线程
 long keepAliveTime, // 非核心线程空闲时间
 TimeUnit unit, // keepAliveTime单位
 BlockingQueue<Runnable> workQueue, // 堵塞线程队列
 ThreadFactory threadFactory, // 线程工厂
 RejectedExecutionHandler handler // 拒绝策略

假设核心线程corePoolSize = 0 、最大线程maximumPoolSize = 1 堵塞队列为两个new ArrayBlockingQueue<>(1)、这种情况执行到第三个任务就会走拒绝策略。

ThreadPoolExecutor执行流程

1655815472817.png