当前位置: 首页 > news >正文

ThreadPoolExecutor 的七个参数

在 ThreadPoolExecutor 中,有七个重要的参数需要了解,源代码如下:

    public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue<Runnable> workQueue,ThreadFactory threadFactory,RejectedExecutionHandler handler)

图示如下:

int corePoolSize

表示的是核心线程数,表示的是线程池中最多会保留的线程数。

在创建线程池时,这些核心线程不会被立马创建,而是等待有任务需要执行时才会创建。

int maximumPoolSize

表示线程池中的最大线程数。

线程池中,不仅仅有核心线程,还有救急线程,即任务进来后,核心线程处理不过来时才会创建救急线程,救急线程的数目 = maximumPoolSize - corePoolSize。

long keepAliveTime

表示救急线程的生存时间,在这段时间内没有任务需要救急线程执行时,究极线程就会被释放。

TimeUnit unit

表示救急线程生存时间的单位,可以是秒、毫秒等。

BlockingQueue<Runnable> workQueue

表示工作队列,当任务进入线程池时,会先交给核心线程执行,当没有空闲的核心线程来执行这个任务时,就会将该任务存入工作队列中。

当队列满时依然有新的任务进来,这时就会创建救急线程来执行,当救急线程的数目达到最大值时并且没有空闲的救急线程来执行该任务时,就会根据后面的 handler 参数来决定如何处理该任务。

ThreadFactory threadFactory

表示线程工厂,可以定制线程对象的创建,例如设置线程名字、是否是守护线程等。

RejectedExecutionHandler handler

表示拒接策略,当线程池中没有空闲的核心线程、救急线程,并且工作队列已经满了,此时依然有新的任务进来,这时就需要拒绝策略来判断如何处理该任务。

AbortPolicy

直接抛出异常

CallerRunsPolicy

由调用者执行该任务

DiscardPolicy

丢弃该任务

DiscardOldestPolicy

丢弃最早进入工作队列的任务,并将新的任务存入工作队列中

http://www.dtcms.com/a/570350.html

相关文章:

  • 为进一步加强校园网站建设wordpress 页面 固定链接
  • C 命令行参数
  • 做网站都需要什么工具网站备案 营业执照副本
  • springboot测试临时数据修改指南
  • 从零到一:Kubernetes 基础概念与集群部署详解
  • 如何优化SQL查询性能?测试与开发协同优化指南
  • 衡水安徽网站建设网站建设需要注意什么 知乎
  • 手机怎么制作网站教程视频犀牛云做网站怎么样
  • 苏州建设网站wordpress页面编辑插件
  • 学习Java第五十九天——MySQL篇
  • 公司网站搭建费用用上网做任务的网站
  • 甘肃省城乡与建设厅网站首页关键词是在网站后台做的吗
  • 营销印刷网站wordpress模板网站标题重复
  • 室内空间设计网站推荐开网店需要什么准备
  • 烟台城乡建设学校网站开发公司支付前期物业开办费包括哪些内容
  • 【仓颉纪元】仓颉三方库适配深度实战:7 天打通 SQLite 生态壁垒
  • 电源完整性07-如何确定PDN网络中的大电容
  • Java - 使用虹软人脸识别sdk记录
  • 江门网页建站模板慧算账代理记账公司
  • 做非法网站宿迁558网络专业做网站
  • 长沙销售公司 网站余姚的网站建设
  • 网站建设服务商排行wordpress主题没法用
  • 贵港网站建设培训wordpress event calendar
  • 室内装饰公司网站模板贵州新农村建设专业网站
  • 北京网站开发优选ls20227医院网站建设系统
  • 厦门专门建设网站的公司深圳微信商城网站设计联系电话
  • MCU单片机TWS耳机充电盒系统控制方案
  • 8.DSP学习记录之ePWM
  • 钓鱼网站在线下载国外有没有做问卷调查的网站
  • 住房城乡住房和城乡建设部网站首页如何做好一个企业网站设计