news 2026/4/23 15:35:28

线程池以及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/23 12:10:52

客户相信案例,但是更相信现场数据

制造业销售人员常常把“我们给XX大厂供货”挂在嘴边&#xff0c;以为用知名客户做背书就能赢得信任。但现实情况是&#xff1a;客户听完之后只是点点头&#xff0c;心里却在想&#xff1a;“他行&#xff0c;不代表你在我这里也能行&#xff0c;”在注重结果、高风险的制造领域…

作者头像 李华
网站建设 2026/4/23 10:45:16

终极3DS游戏文件转换解决方案:快速实现CCI到CIA格式转换

终极3DS游戏文件转换解决方案&#xff1a;快速实现CCI到CIA格式转换 【免费下载链接】3dsconv Python script to convert Nintendo 3DS CCI (".cci", ".3ds") files to the CIA format 项目地址: https://gitcode.com/gh_mirrors/3d/3dsconv 还在为…

作者头像 李华
网站建设 2026/4/23 12:56:02

5个最火小模型对比:Qwen2.5开箱即用,10块钱全试遍

5个最火小模型对比&#xff1a;Qwen2.5开箱即用&#xff0c;10块钱全试遍 你是不是也遇到过这种情况&#xff1f;作为产品经理&#xff0c;想为团队选一个轻量级大模型做产品原型&#xff0c;结果一打开 GitHub&#xff0c;几十个名字花里胡哨的“小模型”扑面而来&#xff1a…

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

RimWorld终极模组管理神器:智能排序与冲突检测完整解决方案

RimWorld终极模组管理神器&#xff1a;智能排序与冲突检测完整解决方案 【免费下载链接】RimSort 项目地址: https://gitcode.com/gh_mirrors/ri/RimSort RimSort作为专为RimWorld玩家打造的开源模组管理器&#xff0c;彻底解决了模组管理中的加载冲突、依赖缺失和排序…

作者头像 李华
网站建设 2026/4/23 12:15:50

OBS多平台直播终极教程:Multi RTMP插件完整使用指南

OBS多平台直播终极教程&#xff1a;Multi RTMP插件完整使用指南 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp 还在为同时向多个直播平台推送内容而烦恼吗&#xff1f;OBS Multi RTMP插…

作者头像 李华