线程池的拒绝策略
程序员文章站
2022-06-25 09:10:45
线程池的拒绝策略1、是什么?等待队列已经排满了,再也塞不下新任务了同时,线程池中的max线程也达到了,无法继续为新任务服务。这个是时候我们就需要拒绝策略机制合理的处理这个问题。2、JDK内置的拒绝策略AbortPolicy(默认):直接抛出RejectedExecutionException异常阻止系统正常运行CallerRunsPolicy:“调用者运行”一种调节机制,该策略既不会抛弃任务,也不会抛出异常,而是将某些任务回退到调用者,从而降低新任务的流量。DiscardOldestP...
线程池的拒绝策略
1、是什么?
- 等待队列已经排满了,再也塞不下新任务了
- 同时,线程池中的max线程也达到了,无法继续为新任务服务。
- 这个是时候我们就需要拒绝策略机制合理的处理这个问题。
2、JDK内置的拒绝策略
- AbortPolicy(默认):直接抛出RejectedExecutionException异常阻止系统正常运行
- CallerRunsPolicy:“调用者运行”一种调节机制,该策略既不会抛弃任务,也不会抛出异常,而是将某些任务回退到调用者,从而降低新任务的流量。
- DiscardOldestPolicy:抛弃队列中等待最久的任务,然后把当前任务加人队列中尝试再次提交当前任务。
- DiscardPolicy:该策略默默地丢弃无法处理的任务,不予任何处理也不抛出异常。如果允许任务丢失,这是最好的一种策略。
均实现了RejectedExecutionHandle接口
本文地址:https://blog.csdn.net/qq_44763720/article/details/108699485
上一篇: Node.js GET/POST请求
下一篇: 两种简单方法写出那波菲契数列