线程池七大参数
-
corePoolSize:线程池中常驻核心线程数
-
maximumPoolSize:线程池能够容纳同时执行的最大线程数
-
keepAliveTime:多余的空闲线程存活时间
-
unit:keepAliveTime的时间单位
-
workQueue:任务队列,被提交但尚未执行的任务
- ArrayBlockingQueue:是一个基于数组结构的有界阻塞队列,此队列按 FIFO(先进先出)原则对元素进行排序
- LinkedBlockingQueue:一个基于链表结构的阻塞队列,此队列按FIFO (先进先出) 排序元素,吞吐量通常要高于ArrayBlockingQueue。静态工厂方法Executors.newFixedThreadPool()使用了这个队列
- SynchronousQueue:一个不存储元素的阻塞队列。每个插入操作必须等到另一个线程调用移除操作,否则插入操作一直处于阻塞状态,吞吐量通常要高于LinkedBlockingQueue,静态工厂方法Executors.newCachedThreadPool(5)使用了这个队列。
- PriorityBlockingQueue:一个具有优先级的无限阻塞队列。
-
threadFactory:表示生成线程池中的工作线程的线程工厂
-
handler:拒绝策略,表示当队列满了并且工作线程大于等于线程池的最大线程数(maximumPoolSize)时如何拒绝。
- AbortPolicy(被拒绝了抛出异常)
- CallerRunsPolicy(使用调用者所在线程执行,就是哪里来的回哪里去)
- DiscardOldestPolicy(尝试去竞争第一个,失败了也不抛异常)
- DiscardPolicy(默默丢弃、不抛异常)

浙公网安备 33010602011771号