news 2026/10/18 14:46:28

线程池的执行流程是什么?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
线程池的执行流程是什么?

一、线程池执行流程

JavaThreadPoolExecutor线程池的任务调度逻辑,核心实现在execute()方法。当向线程池提交任务时,会按照下面这套固定流程处理:`

1. 提交任务

调用线程池execute()提交任务,线程池开始判断当前存活工作线程数量。

2.判断是否小于核心线程数 corePoolSize

  • 如果存活线程数小于 corePoolSize:直接新建核心线程来执行这个任务。
  • 如果存活线程数大于等于 corePoolSize:不会立刻新建线程,尝试把任务放进工作队列 workQueue。

3.判断工作队列workQueue 是否已满

  • 队列未满:任务入队排队,等待空闲线程去队列里取任务执行。
  • 队列已满:队列无法接收新任务,继续判断当前存活线程数量。

4.判断是否达到最大线程数 maximumPoolSize

  • 存活线程数小于 maximumPoolSize:新建非核心线程,直接执行当前任务。
  • 存活线程数等于 maximumPoolSize:线程池资源全部耗尽,触发拒绝策略处理任务。

5.执行拒绝策略

如果当前存活线程数达到了 maximumPoolSize 最大线程数,直接执行拒绝策略处理(如抛出异常、丢弃任务等)。

6.执行任务

无论是创建的核心线程、非核心线程,还是分配的空闲线程,最终都会走到执行线程任务这一步。

二、源码实现

代码如下(示例):

publicvoidexecute(Runnablecommand){if(command==null)thrownewNullPointerException();intc=ctl.get();// 1. 判断存活线程数 < corePoolSize,创建核心线程if(workerCountOf(c)<corePoolSize){if(addWorker(command,true))return;c=ctl.get();}// 2. 判断是否入队成功if(isRunning(c)&&workQueue.offer(command)){// 入队成功,二次检查是否需要补充线程intrecheck=ctl.get();if(!isRunning(recheck)&&remove(command))reject(command);elseif(workerCountOf(recheck)==0)addWorker(null,false);}// 3. 队列已满,尝试创建非核心线程elseif(!addWorker(command,false)){// 4. 创建失败(达到 maximumPoolSize),执行拒绝策略reject(command);}}

流程总结

核心线程满 → 进队列 → 队列满 → 建非核心线程 → 最大线程满 → 拒绝策略。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/18 14:45:52

ai大模型(二)

1.关于RAG的说明现在呢肯定是需要跟他去交互&#xff0c;那这个交互的输入&#xff0c;那我们就称他叫提示词了&#xff0c;那如果呢&#xff0c;一交互发现效果挺好&#xff0c;那没问题&#xff0c;直接我们就落地啊&#xff0c;使用这样的一个反馈就可以了&#xff0c;但如果…

作者头像 李华
网站建设 2026/10/18 14:43:10

基于YOLOv8的商场客流统计系统实战:数据集、跟踪与部署全解析

商场做客流统计这件事&#xff0c;听起来简单&#xff0c;真做起来坑不少。早几年用红外对射或者WiFi探针的方案&#xff0c;精度和抗干扰能力都一言难尽。现在基于深度学习的目标检测技术成熟了&#xff0c;用YOLO系列去做视觉客流统计成了主流方案&#xff0c;精度高、部署灵…

作者头像 李华
网站建设 2026/10/18 14:42:21

AI面试八股文-13_12-AI 框架与运维面试题

pdf版下载链&#xff1a;https://pan.quark.cn/s/9cc742e9c2a8 13 AI 框架与运维&#xff1a;技术选型、部署监控与成本治理 更新&#xff1a; 2026-10-12 时效说明&#xff1a;框架、平台和 API 状态截至 2026-10。示例强调稳定概念&#xff1b;生产使用前应锁定版本并查官方…

作者头像 李华
网站建设 2026/10/18 14:42:16

X-12-ARIMA季节性调整:工业级时间序列预处理实战指南

简介&#xff1a;本资源是一套面向经济学、金融学及数据科学学习者与从业者的X-12-ARIMA季节性调整可运行源码包&#xff0c;聚焦时间序列分析中的核心痛点——剥离季节性波动以识别真实趋势。资源包含7个文件&#xff08;2张结果对比图png、1个Python主程序、1个依赖说明txt、…

作者头像 李华
网站建设 2026/10/18 14:39:05

易优商城第三方商家插件安装配置全攻略:会员变商家实战避坑指南

简介&#xff1a;易优第三方商家&#xff08;会员变商家&#xff09;商城插件是面向易优CMS平台的电商扩展组件&#xff0c;主要帮助站长将注册会员升级为平台商家&#xff0c;适用于需要快速搭建多商家入驻、店铺自主运营场景的中小型电商网站。压缩包共526个文件、约7.47MB&a…

作者头像 李华
网站建设 2026/10/18 14:34:58

AI大模型生产级架构决策图谱:推理服务、RAG、Agent与可观测性

简介&#xff1a;本资源是一份面向AI架构师、大模型工程师及技术决策者的系统性参考图谱&#xff0c;聚焦AI大模型在真实业务场景中的落地路径与架构设计方法论。PDF文档全面覆盖10类典型应用架构图&#xff0c;包括通用技术架构&#xff08;数据预处理→训练→优化→部署→监控…

作者头像 李华