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

线程池核心参数有哪些

线程池核心参数解释:

1、corePoolSize:核心线程数

  • 核心线程会一直存活,及时没有任务需要执行
  • 当线程数小于核心线程数时,即使有线程空闲,线程池也会优先创建新线程处理

2、queueCapacity:任务队列容量(阻塞队列)

  • 当核心线程数达到最大时,新任务会放在队列中排队等待执行
  •  maxPoolSize:最大线程数

        当线程数>=corePoolSize,且任务队列已满时。线程池会创建新线程来处理任务

        当线程数=maxPoolSize,且任务队列已满时,线程池会拒绝处理任务而抛出异常

3、keepAliveTime:线程存活时间

  • 当线程空闲时间超过存活时间,多余的线程会自动销毁,直到线程数量=corePoolSize
  • 如果最大线程数=核心线程数,那么线程在空闲时也不会被销毁

4、unit:存活时间单位,

        配合线程存活时间共同使用

5、workQueue:线程池执行的任务队列

        当线程池的核心线程都在处理任务时,如果来了新的任务就会被缓存到任务队列中排队等待执行

6、threadFactory:线程的创建工厂

        如果我们创建线程池时不指定此参数,就会使用默认的线程创建工厂方法来创建线程

7、rejectedExecutionHandler:指定线程池拒绝策略

  • 两种情况会拒绝处理任务:
    • 队列已满,且线程数已达到最大线程数(maxPoolSize),就会用到此拒绝策略,属于一种限流保护机制
    • 线程池异常关闭

http://www.kler.cn/a/382348.html

相关文章:

  • Browserslist 配置
  • 进程与线程+多线程优势
  • Centos安装ZooKeeper教程(单机版)
  • 老域名seo有什么优势?
  • html练习2
  • 32位汇编——通用寄存器
  • Vue 组件传递数据-Props(六)
  • Vue+Springboot 前后端分离项目如何部署?
  • 【FPGA】Verilog:理解德摩根第一定律: ( ̅A + ̅B) = ̅A x ̅B
  • 爬虫下载网页文夹
  • 【C++刷题】力扣-#697-数组的度
  • 【人工智能】Transformers之Pipeline(二十二):零样本文本分类(zero-shot-classification)
  • 7.2 设计模式
  • [WSL][桌面][X11]WSL2 Ubuntu22.04 安装Ubuntu桌面并且实现GUI转发(Gnome)
  • 【论文阅读】-- 多元时间序列聚类算法综述
  • Sigrity Power SI 3D-EM Full Wave Extraction模式如何进行S参数提取和观测3D电磁场和远场操作指导(一)
  • “再探构造函数”(2)
  • 解释器模式:有效处理语言的设计模式
  • Redis 权限控制(ACL)|ACL 命令详解、ACL 持久化
  • 【题解】CF2033G
  • ThinkPHP腾讯云国际短信对接
  • W5100S-EVB-Pico2评估板介绍
  • 史上最全盘点:一文告诉你低代码(Low-Code)是什么?为什么要用?
  • 【青牛科技】GC8549替代LV8549/ONSEMI在摇头机、舞台灯、打印机和白色家电等产品上的应用分析
  • 100种算法【Python版】第48篇——计数排序
  • CNN在线识别手写中文