当前位置: 移动互联网学院 > Java培训 > JAVA开发 > Java线程池拒绝策略有哪些
Java线程池拒绝策略有哪些 时间:2017-08-31     来源:华清远见JAVA学院

今天华清Java学院小编要和大家分享一下Java线程池拒绝策略,所谓拒绝策略就是任务太多,超过maximumPoolSize了怎么办?当然是接不下了,接不下那只有拒绝了。拒绝的时候可以指定拒绝策略,也就是所谓的Java线程池拒绝策略。那么Java线程池拒绝策略有哪些呢?我们一起来看一下。

Java拒绝策略的父接口是RejectedExecutionHandler,JDK本身在ThreadPoolExecutor里给用户提供了四种拒绝策略,具体如下:

策略1、AbortPolicy

直接抛出一个RejectedExecutionException,这也是JDK默认的拒绝策略

策略2、CallerRunsPolicy

尝试直接运行被拒绝的任务,如果线程池已经被关闭了,任务就被丢弃了

策略3、DiscardOldestPolicy

移除晚的那个没有被处理的任务,然后执行被拒绝的任务。同样,如果线程池已经被关闭了,任务就被丢弃了

策略4、DiscardPolicy

不能执行的任务将被删除

X