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

【Java面试笔记:进阶】21.Java并发类库提供的线程池有哪几种? 分别有什么特点?

Java 并发类库通过 java.util.concurrent.Executors 工厂类提供了多种预配置的线程池,每种线程池针对不同的使用场景设计。

1. Java线程池类型及特点

1.newCachedThreadPool()

  • 适用于大量短时间任务。
  • 尝试缓存线程并重用,无缓存线程时创建新线程。
  • 线程闲置超过60秒会被终止。
  • 内部使用SynchronousQueue作为工作队列。
  • 核心参数:
    • 核心线程数 = 0,最大线程数 = Integer.MAX_VALUE
    • 线程空闲时间:60 秒。
    • 工作队列:SynchronousQueue(直接传递队列)。
  • 创建方式
    ExecutorService executor = Executors.newCachedThreadPool();
    

2.newFixedThreadPool(int nThreads)

  • 重用固定数目的线程。
  • 使用无界工作队列,最多有nThreads个活动线程。
  • 任务数量超过活动线程数时,任务会在队列中等待。
  • 核心参数:
    • 核心线程数 = 最大线程数(固定线程数)。
    • 工作队列:无界 LinkedBlockingQueue
  • 创建方式
    ExecutorService executor = Executors.newFixedThreadPool(int nThreads);
    

3.newSingleThreadExecutor()

  • 限制为单个工作线程。
  • 使用无界工作队列&#
http://www.xdnf.cn/news/2335.html

相关文章:

  • Java 实现目录递归拷贝
  • Agent2Agent
  • MyBatis 插件开发的完整详细例子
  • Python 实现将图像发送到指定的 API 进行推理
  • docker配置mysql遇到的问题:网络连接超时、启动mysql失败、navicat无法远程连接mysql
  • 跨端时代的全栈新范式:React Server Components深度集成指南
  • 智能赋能与精准评估:大语言模型在自动作文评分中的效度验证及改进路径
  • JS toFixed的坑以及四舍五入实现方法
  • 可靠传输的守护者:揭开计算机网络传输层的奥秘
  • 【C++】14.容器适配器 | stack | queue | 仿函数 | priority_queue
  • 迷宫问题演示
  • Kafka + Kafka-UI
  • Python dotenv 使用指南:轻松管理项目环境变量
  • 【SSH 端口转发】通过SSH端口转发实现访问远程服务器的 tensorboard
  • 什么是函数依赖中的 **自反律(Reflexivity)**、**增广律(Augmentation)** 和 **传递律(Transitivity)?
  • Eclipse 插件开发 2
  • RASP技术在DevOps中的安全应用
  • Python-MCPServer开发
  • 产业观察:哈飞空客2025.4.26
  • 【MATLAB】基于RSSI原理的Wi-Fi定位程序,N个锚点(数量可自适应)、三维空间,轨迹使用UKF进行滤波,附完整代码(订阅专栏后可直接复制粘贴)
  • 100亿补贴不是终点:京东外卖在下一盘颠覆即时零售的大棋
  • w307MES生产制造执行系统设计与实现
  • SEO新手快速上手核心步骤
  • 【Android Compose】焦点管理
  • AWS中国区ICP备案全攻略:流程、注意事项与最佳实践
  • python 画折线统计图
  • 华为OD机试真题——二维伞的雨滴效应(2025A卷:200分)Java/python/JavaScript/C/C++/GO最佳实现
  • element ui el-col的高度不一致导致换行
  • AQS条件队列源码详细剖析
  • FPGA 100G UDP纯逻辑协议栈