美文网首页线程池
线程池的状态以及拒绝策略

线程池的状态以及拒绝策略

作者: 小鱼嘻嘻 | 来源:发表于2017-01-15 22:26 被阅读81次

首先我们回顾一下线程有哪些状态。

线程池的状态有哪些呢?

线程池的5种状态是:Running,SHUTDOWN,STOP,TIDYING,TERMINATED

介绍一下线程池的拒绝策略:

前面已经提到过线程池的四种拒绝策略分别为:

1 AbortPolicy 默认,直接抛异常

2 DiscardPolicy  正常执行不处理

3 DiscardOldestPolicy 将当前任务加入队尾,删除之前队尾线程

4 CallerRunsPolicy 终止正在执行任务,执行当前需要加入的任务

分别给出几个demo:

可以看到采用AbortPolicy  直接抛了异常

可以看到当超过最大线程池数量的时候,调用CallerRunsPolicy的话会先把阻塞队列里面尾部任务停止执行当前任务

能看到当启动DiscardOldestPolicy拒绝策略的时候,阻塞队列满的时候会直接去掉队尾元素,将当前任务插入队尾

可以看到当执行DiscardPolicy时只会执行当前线程池和阻塞队列里面的任务,其他的都会被丢弃

相关文章

  • 多线程juc线程池

    java_basic juc线程池 创建线程池 handler是线程池拒绝策略 排队策略 线程池状态 RUNNIN...

  • 线程池的状态以及拒绝策略

    首先我们回顾一下线程有哪些状态。 线程池的状态有哪些呢? 线程池的5种状态是:Running,SHUTDOWN,S...

  • Java线程池拒绝策略

    【Java线程池拒绝任务策略】创建线程池可以指定拒绝策略如下: 一 拒绝时机1) 调用线程池的shutdown函数...

  • ThreadPoolExecutor

    线程池 拒绝策略 线程池的拒绝策略,即任务被添加到线程池中被拒绝而采取的处理措施。任务被拒绝的原因可能有: 线程池...

  • ThreadPoolExecutor的RejectedExecu

    java 线程池ThreadPoolExecutor的拒绝策略有: CallerRunsPolicy : 当线程池...

  • 线程池

    线程池执行过程 线程池生命周期 线程池分类 阻塞队列 拒绝策略 - ThreadPoolExecutor.Abor...

  • 线程池概述

    为什么要使用线程池? 线程池核心参数 线程池的几种拒绝策略 execute()和submit()的区别 线程池工作...

  • 信号量用法:锁

    用于dubbo线程池满的拒绝策略

  • Java基础 -- 线程拒绝策略

    什么是线程拒绝策略 当线程池达到饱和状态时,新提交的任务需要一种处理方法,这也就出现了拒绝策略。Java中提供了四...

  • 线程池-四种拒绝策略总结

    一、线程池的拒绝策略线程池中,有三个重要的参数,决定影响了拒绝策略:corePoolSize - 核心线程数,也即...

网友评论

    本文标题:线程池的状态以及拒绝策略

    本文链接:https://www.haomeiwen.com/subject/rolubttx.html