今天华清Java学院小编要和大家分享一下Java线程池拒绝策略,所谓拒绝策略就是任务太多,超过maximumPoolSize了怎么办?当然是接不下了,接不下那只有拒绝了。拒绝的时候可以指定拒绝策略,也就是所谓的Java线程池拒绝策略。那么Java线程池拒绝策略有哪些呢?我们一起来看一下。
Java拒绝策略的父接口是RejectedExecutionHandler,JDK本身在ThreadPoolExecutor里给用户提供了四种拒绝策略,具体如下:
策略1、AbortPolicy
直接抛出一个RejectedExecutionException,这也是JDK默认的拒绝策略
策略2、CallerRunsPolicy
尝试直接运行被拒绝的任务,如果线程池已经被关闭了,任务就被丢弃了
策略3、DiscardOldestPolicy
移除晚的那个没有被处理的任务,然后执行被拒绝的任务。同样,如果线程池已经被关闭了,任务就被丢弃了
策略4、DiscardPolicy
不能执行的任务将被删除
热点新闻