线程池默认的拒绝策略是什么? CallerRunsPolicy拒绝策略的特点是什么? DiscardPolicy拒绝策略的特点是什么? 什么情况下适合使用DiscardOldestPolicy拒绝策略? 为什么建议关键业务使用AbortPolicy拒绝策略?
时间: 2024-06-14 19:06:39 浏览: 64
Java 线程池 8 大拒绝策略,面试必问!.docx
线程池默认的拒绝策略是CallerRunsPolicy。CallerRunsPolicy的特点是当任务不能再提交时,会将任务返回给调用者来执行,即由调用线程来执行该任务。
DiscardPolicy拒绝策略的特点是当任务不能再提交时,会直接丢弃该任务,不会抛出任何异常或错误信息。
适合使用DiscardOldestPolicy拒绝策略的情况是当任务不能再提交时,会丢弃最早提交的任务,然后尝试再次提交当前任务。
建议关键业务使用AbortPolicy拒绝策略的原因是当任务不能再提交时,会抛出RejectedExecutionException异常,及时反馈程序运行状态,以便及时发现系统不能承载更大并发量的情况。
阅读全文