news 2026/4/20 21:11:37

线程池以及HashTable,HashMap,ConcurrentHashMap之间的区别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
线程池以及HashTable,HashMap,ConcurrentHashMap之间的区别

什么是线程池

线程池(Thread Pool)是一种线程使用模式,提前创建一定数量的线程并进行复用,统一管理线程的创建、销毁和调度,从而:
  • 降低线程创建和销毁的开销

  • 提高程序响应速度

  • 防止线程数量失控导致系统资源耗尽

线程池的核心参数

  • Java中线程池的核心实现类是 ThreadPoolExecutor。

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

1、corePoolSize(核心线程数)

  • 线程池中长期存活的线程数量

  • 即使空闲,也不会被销毁(除非设置允许回收)

  • 作用:保证线程池的基本处理能力

2、maximumPoolSize(最大线程数)

  • 线程池中允许存在的最大线程数量

  • 当任务很多、队列已满时,才会创建新线程

  • 作用:限制线程数量,防止资源耗尽

3、keepAliveTime(空闲存活时间)

  • 非核心线程空闲时,最多存活时间

  • 超过该时间将被回收

4、unit(时间单位)

  • keepAliveTime 的时间单位

  • 如:TimeUnit.SECONDS

5、workQueue(任务队列)

  • 用于存放等待执行的任务

  • 常见实现:

6、threadFactory(线程工厂)

  • 用于创建线程

  • 可自定义线程名、优先级、是否守护线程

  • 方便排查问题、日志定位

7、handler(拒绝策略)

  • 当线程池线程数已满 + 队列已满时触发。

线程池的工作流程

  • 线程池处理任务的完整逻辑可总结为5个步骤:

Executors创建常见线程池

  • Java提供了Executors工具类,快速创建线程池(但生产环境不推荐直接使用)。

1、FixedThreadPool(固定大小线程池)

ExecutorService pool = Executors.newFixedThreadPool(5);
  • 特点线程数量固定使用 无界队列 LinkedBlockingQueue

  • 风险任务过多可能 OOM(内存溢出)

  • 适用场景任务量稳定并发数可控

2、SingleThreadExecutor(单线程池)

ExecutorService pool = Executors.newSingleThreadExecutor();
  • 特点只有一个线程保证任务顺序执行

  • 风险任务堆积可能 OOM(内存溢出)

3、CachedThreadPool(缓存线程池)

ExecutorService pool = Executors.newCachedThreadPool();
  • 特点线程数不固定空闲线程 60s 回收使用 SynchronousQueue

  • 风险线程数无限增长,容易耗尽CPU

4、ScheduledThreadPool(定时线程池)

ScheduledExecutorService pool = Executors.newScheduledThreadPool(3);
  • 特点:支持定时、周期任务

HashTable, HashMap, ConcurrentHashMap 之间的区别

主要区别:

文章转载自:我会替风去

原文链接:https://www.cnblogs.com/xi-yongqi/p/19484107

体验地址:http://www.jnpfsoft.com/?from=001YH

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

抖音内容采集实战:从单视频到直播流的一站式解决方案

抖音内容采集实战&#xff1a;从单视频到直播流的一站式解决方案 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 在数字内容创作和电商运营领域&#xff0c;抖音平台已成为不可或缺的素材来源。无论是单个视…

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

开源阅读鸿蒙版终极指南:从零开始构建你的专属数字书房

开源阅读鸿蒙版终极指南&#xff1a;从零开始构建你的专属数字书房 【免费下载链接】legado-Harmony 开源阅读鸿蒙版仓库 项目地址: https://gitcode.com/gh_mirrors/le/legado-Harmony 作为鸿蒙生态中备受推崇的开源阅读鸿蒙版应用&#xff0c;这款阅读神器以其纯净无广…

作者头像 李华
网站建设 2026/4/19 2:45:32

新手必看:Qwen-Image-Layered这样试,1块钱不花冤枉钱

新手必看&#xff1a;Qwen-Image-Layered这样试&#xff0c;1块钱不花冤枉钱 你是不是也和我一样&#xff0c;刚转行做UI设计&#xff0c;每天被各种改图、调色、重排版搞得焦头烂额&#xff1f;老板一句“这个按钮换个风格”&#xff0c;就得重新出一整套图&#xff1b;客户说…

作者头像 李华
网站建设 2026/4/19 1:24:34

FLUX.1故障排除:云端监控与快速恢复

FLUX.1故障排除&#xff1a;云端监控与快速恢复 在商业化运营AI服务的过程中&#xff0c;稳定性是生命线。你可能已经成功部署了基于FLUX.1的图像生成服务&#xff0c;客户体验流畅、出图速度快——但一旦系统突然卡顿、GPU显存溢出或模型加载失败&#xff0c;用户就会流失&am…

作者头像 李华
网站建设 2026/4/18 17:58:30

YOLO-v8.3模型蒸馏指南:云端GPU师生模型同训

YOLO-v8.3模型蒸馏指南&#xff1a;云端GPU师生模型同训 你是否也遇到过这样的问题&#xff1a;训练一个高精度的YOLO-v8.3大模型效果很好&#xff0c;但部署到边缘设备上时速度慢、资源吃紧&#xff1f;而轻量级小模型虽然跑得快&#xff0c;准确率却总是差那么一截。有没有一…

作者头像 李华
网站建设 2026/4/18 2:23:11

Qwen2.5多轮对话实现:messages格式实战详解

Qwen2.5多轮对话实现&#xff1a;messages格式实战详解 通义千问2.5-7B-Instruct大型语言模型 二次开发构建by113小贝。Qwen2.5 是最新的 Qwen 大型语言模型系列&#xff0c;针对实际应用场景进行了深度优化。对于 Qwen2.5&#xff0c;我们发布了从 0.5 到 720 亿参数的多个基…

作者头像 李华