Java线程池的四种拒绝策略

前言

当线程池的任务队列满了之后,线程池会执行指定的拒绝策略来应对,常用的四种拒绝策略包括:CallerRunsPolicy、AbortPolicy、DiscardPolicy、DiscardOldestPolicy,此外,还可以通过实现RejectedExecutionHandler接口来自定义拒绝策略。

四种预置的拒绝策略:

1、CallerRunsPolicy

使用线程池的调用者所在的线程去执行被拒绝的任务,除非线程池被停止或者线程池的任务队列已有空缺。

2、AbortPolicy

直接抛出一个任务被线程池拒绝的异常。

3、DiscardPolicy

不做任何处理,静默拒绝提交的任务。

4、DiscardOldestPolicy

抛弃最老的任务,然后执行该任务。

5、自定义拒绝策略

通过实现接口可以自定义任务拒绝策略。


版权声明:本文为LONG_Yi_1994原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。