Executors与ThreadPoolExecutor(阿里发布的 Java开发手册中强制线程池不允许使用 Executors 去创建)

阿里Java开发手册建议使用ThreadPoolExecutor而非Executors创建线程池,以明确线程池运行规则,避免资源耗尽风险。Executors创建的线程池可能导致资源浪费,例如默认的拒绝策略和线程池大小设置。ThreadPoolExecutor核心参数包括核心池大小、最大线程数、存活时间、时间单位、工作队列和拒绝策略。关注点包括适当选择阻塞队列类型(如ArrayBlockingQueue、LinkedBlockingQueue等)和定制拒绝策略,以适应不同场景需求。
摘要由CSDN通过智能技术生成

最近阿里发布的 Java开发手册中强制线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式,这样的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险

Executors利用工厂模式向我们提供了4种线程池实现方式,但是并不推荐使用,原因是使用Executors创建线程池不会传入这个参数而使用默认值所以我们常常忽略这一参数,而且默认使用的参数会导致资源浪费,不可取。

现在介绍一下线程池体系

|-Java.util.concurrent.Executor 负责线程的使用与调度的根接口

  |-ExecutorService:Executor的子接口,线程池的主要接口

    |-AbstractExecutorService:实现了ExecutorService接口,基本实现了ExecutorService其中声明的所有方法,另有添加其他方法

      |-ThreadPoolExecutor:继承了AbstractExecutorService,主要的常用实现类

    |-ScheduledExecutorService:继承了ExecutorService,负责线程调度的接口

      |-ScheduledThreadPoolExecutor:继承了ThreadPoolExecutor同时实现了ScheduledExecutorService

转载部分(方便理解ThreadPoolExecutor):

前言

最近看阿里的 Java开发手册,上面有线程池的一个建议&

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Deamon Tree

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值