线程池七大参数和四大拒绝策略
七大参数
corePoolSize
核心线程数 (银行当天开放的窗口)maxmumPoolSize
最大线程数 (银行一共的窗口)keepAiveTime
线程等待时间 (窗口没人来多久关闭)unit
线程等待时间单位 (时间单位)blockingQueue
阻塞队列 (银行大厅等待人数)threadFactory
线程工厂rejectedExecutionHandler
拒绝策略(大厅满人了,再来的人的处理策略)
拒绝策略
rejectedExecutionHandler : 线程池对拒绝任务的处理策略。在 ThreadPoolExecutor 里面定义了 4 种 handler 策略,分别是
-
CallerRunsPolicy :对拒绝的任务给回调用线程执行,例如:如果主线程调用,就直接主线程执行。
-
AbortPolicy :对拒绝任务抛弃处理,并且抛出异常。
-
DiscardPolicy :对拒绝任务直接无声抛弃,没有异常信息。
-
DiscardOldestPolicy :对拒绝任务不抛弃,而是抛弃队列里面等待最久的一个线程,然后把拒绝任务加到队列。
参考资料