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

生产环境的项目中java是如何定义,如何使用,如何关闭线程池的

生产环境的项目中java是如何定义,如何使用,如何关闭线程池的

文章目录

  • 生产环境的项目中java是如何定义,如何使用,如何关闭线程池的
    • 1. 定义线程池
      • 1.1 直接使用 JDK 原生 `ThreadPoolExecutor`
      • 1.2 在 Spring Boot 中定义
    • 2. 使用线程池
    • 3. 关闭线程池
      • 3.1 优雅关闭
      • 3.2 强制关闭
        • 1. `shutdown()`
        • 2. `shutdownNow()`
        • 3. 何时使用
        • 4. 典型注意点
        • 5. 小结
    • 4.小结
    • 5. `CompletableFuture` 如何搭配`线程池`进行使用
      • 5.1 方式一:
        • 1. 基本用法:`supplyAsync`/`runAsync` + 自定义 Executor
        • 2. 链式调用:`thenApplyAsync`、`thenAcceptAsync`、`handleAsync`…
        • 3. 并行合并:`allOf` / `anyOf`
        • 4. 与 Spring `@Async` + `CompletableFuture`
        • 5. 优雅关闭线程池
        • 6. 小结
      • 5.2 方式二:
        • 1. 基础用法:`supplyAsync` 与自定义线程池
        • 2. 并行多任务合并:`allOf` / `anyOf`
        • 3. 异常处理
        • 4. 结合 Spring `@Async`
        • 5. 关闭线程池
        • 6. 小结
    • 6. 踩坑
      • 1. 出现常见场景
      • 2. 解决办法
        • 1. 推迟关闭线程池
        • 2. 每批任务使用独立的 Executor
        • 3. 使用全局/单例线程池
      • 3.我出现的原因
        • 1.线程池的生命周期
        • 2.正确的做法:线程池应当和应用同生命周期
      • 4. 解决办法
        • 1. 在 Spring Boot 中的推荐配置
        • 2. 使用示例
      • 5. 要点小结

今天在做导出的时候,涉及到多个表的查询逻辑处理和导出,就使用线程池搭配CompletableFuture进行使用,但是并非一帆风顺,出现一些没有接触到问题,正好记录下来,供大家借鉴

  • 在正式的项目生产环境中,Java 线程池的使用通常会遵循以下三步:
    • 定义(配置)
    • 使用(提交任务)
    • 关闭(优雅或强制终止)

下面分别介绍这三步的典型做法,并给出示例代码。

1. 定义线程池

1.1 直接使用 JDK 原生 ThreadPoolExecutor

import java

相关文章:

  • 网站涉及敏感视频等该怎么做在线seo推广软件
  • 怎么做网站教程简单友情链接有哪些展现形式
  • 如何为一个网站做短连接seo专员是做什么的
  • 聊城手机网站服务江苏seo推广
  • 宁波网站建设官网网络营销的核心
  • 大型网站开发团队的美工需要什么工作经验和教育背景及薪酬西安百度首页优化
  • OpenCV图像旋转:单点旋转与图片旋转
  • dify中MCP SSE/StreamableHTTP与mcp server插件的区别
  • TDengine 的 CASE WHEN 语法技术详细
  • XC7K70T-3FBG676E Xilinx FPGA Kintex-7 AMD
  • OpenHarmony构建脚本build.sh解析
  • 深入剖析:Spring Boot系统开发的高效之道
  • 数字:数学里面的右手定则指的是什么?
  • 基于SSM框架+mysql实现的监考安排管理系统[含源码+数据库+项目开发技术手册]
  • 【ArcGIS】水资源单项评价
  • 企业级应用中的编程风格深度剖析与实践指南
  • 3 大语言模型预训练数据-3.2 数据处理-3.2.2 冗余去除——3.后缀数组(Suffix Array)在大模型数据去重中的原理与实战
  • ivx创建一个测试小案例
  • claude-code: 通过自然语言指令帮助开发
  • 深度学习中的数据预处理:模型性能的「燃料精炼术」与选择指南
  • 并发下正确的FirstOrCreate数据库操作
  • 用户体验驱动的3D设计:从功能实现到情感共鸣的设计升级
  • MySQL之存储过程详解
  • Solon Flow:轻量级流程编排引擎,让业务逻辑更优雅
  • Java操作H2数据库实战
  • DASCTF 2025上半年赛-web1 phpms Writeup