线程池之ThreadPoolExecutor使用

针对当前热议的线程池之ThreadPoolExecutor使用话题,我们进行了深入调研和信息整合,力求为您呈现全面客观的内容分析。

ThreadPoolExecutor提供了四个构造方法:

我们以最后一个构造方法(参数最多的那个) ,对其参数进行解释:

如果对这些参数作用有疑惑的请看 ThreadPoolExecutor概述 。

知道了各个参数的作用后,我们开始构造符合我们期待的线程池。首先看JDK给我们预定义的几种线程池:

适用场景:可用于Web服务瞬时削峰,但需注意长时间持续高峰情况造成的队列阻塞。

适用场景:快速处理大量耗时较短的任务 ,如Netty的NIO接受请求时,可使用CachedThreadPool 。

咋一瞅,不就是newFixedThreadPool(1)吗?定眼一看 ,这里多了一层FinalizableDelegatedExecutorService包装,这一层有什么用呢,写个dome来解释一下:

对比可以看出 ,FixedThreadPool可以向下转型为ThreadPoolExecutor,并对其线程池进行配置,而SingleThreadExecutor被包装后 ,无法成功向下转型。 因此 ,SingleThreadExecutor被定以后,无法修改,做到了真正的Single。

newScheduledThreadPool调用的是ScheduledThreadPoolExecutor的构造方法 ,而ScheduledThreadPoolExecutor继承了ThreadPoolExecutor,构造是还是调用了其父类的构造方法 。

对于ScheduledThreadPool本文不做描述,其特性请关注后续篇章。

以下是自定义线程池 ,使用了有界队列,自定义ThreadFactory和拒绝策略的demo:

输出结果如下:

其中线程线程1-4先占满了核心线程和最大线程数量,然后4、5线程进入等待队列 ,7-10线程被直接忽略拒绝执行,等1-4线程中有线程执行完后通知4、5线程继续执行。

多线程系列目录(不断更新中):

线程启动原理

线程中断机制

多线程实现方式

FutureTask实现原理

线程池之ThreadPoolExecutor概述

线程池之ThreadPoolExecutor使用

线程池之ThreadPoolExecutor状态控制

线程池之ThreadPoolExecutor执行原理

线程池之ScheduledThreadPoolExecutor概述

线程池的优雅关闭实践

关于线程池之ThreadPoolExecutor使用的相关内容介绍到此告一段落,若这些信息对您有所启发 ,欢迎持续关注本站获取更多优质内容 。

(2)

猜你喜欢

发表回复

本站作者才能评论

评论列表(3条)

  • 比克号的头像
    比克号 2026年08月24日

    我是比克号的签约作者“比克号”

  • 比克号
    比克号 2026年08月24日

    本文概览:针对当前热议的线程池之ThreadPoolExecutor使用话题,我们进行了深入调研和信息整合,力求为您呈现全面客观的内容分析。 ThreadPoolExecutor提供了...

  • 比克号
    用户082409 2026年08月24日

    文章不错《线程池之ThreadPoolExecutor使用》内容很有帮助

联系我们:

邮件:比克号@gmail.com

工作时间:周一至周五,9:30-17:30,节假日休息

关注微信