Java 线程池执行器的饱和策略
通过传递一个 RejectedExecutionHandler
类的实例给执行器的构造器,我们可以修改 Java 中线程池执行器的饱和策略。
中止策略(Abort Policy)
中止策略是线程池的默认策略。中止策略使执行器抛出一个 RejectedExecutionException
异常。
JDK 1.8 中的源码如下:
复制代码
调度者运行策略(Caller-Runs Policy)
该策略使调度者线程自己执行该任务。
JDK 1.8 中的源码如下:
复制代码
丢弃策略(Discard Policy)
该策略在新任务提交失败时静默地丢弃新任务。
JDK 1.8 中的源码如下:
复制代码
丢弃最老任务策略(Discard-Oldest Policy)
该策略先删除队列头中的任务,再重新提交新任务。
JDK 1.8 中的源码如下:
复制代码
这里的代码展示了四种策略的行为。
版权声明: 本文为 InfoQ 作者【Janwee】的原创文章。
原文链接:【http://xie.infoq.cn/article/1e41c959f07a0e4e8c09ed2df】。未经作者许可,禁止转载。
评论