线程池参数说明
- corePoolSize: 核心线程数,也就是正常情况下创建的工作线程数,这些线程创建后不会销毁,而是一种常驻线程。
- maxinumPoolSize: 最大线程数,它与核心线程数相对应,表示允许被创建的最大线程数,如果当前任务较多时,核心线程用完后还是无法满足需求,此时就会创建新的线程,但线程池内的线程总数不会超过这个数。
- keepAliveTime、unit: 表示超出核心线程数之外的线程的空闲存活时间,也就是核心线程不会消除,但超出核心线程数之外的线程则会在空闲一定时间
keepAliveTime
之后被销毁。 - workQueue: 用来存放待执行的任务,假设核心线程都被占用,还有新任务进来,则全部放入队列中,直到整个队列被放满但任务还在持续放入则会开始创建新的线程。
- ThreadFactory: 线程工厂,可以使用默认的线程工厂,产生的线程都在同一个组内,拥有相同的优先级,且都不是守护线程。也可以自定义线程工厂,一般会根据业务来制定不同的线程工厂。
- Handler: 任务拒绝策略,有两种情况,第一种是调用shutdown等方法关闭线程池后,这时候即使线程池内部还有任务正在执行,但线程池已经关闭,再继续向线程池提交任务就会遭到拒绝。第二种是达到最大线程数,线程池已经没有能力继续处理新任务;