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

线程池以及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

http://www.jsqmd.com/news/251032/

相关文章:

  • 3dsconv:专业3DS游戏文件格式转换工具完全指南
  • DeepSeek-R1实战:数学证明自动生成系统
  • 抖音内容自动采集系统:从零搭建智能素材库的完整指南
  • 2024语义模型趋势:GTE云端体验成主流
  • Z-Image-Turbo显存溢出怎么办?低成本GPU适配实战解决策略
  • 抖音内容采集实战:从单视频到直播流的一站式解决方案
  • MinerU定时任务:cron实现每日文档自动处理
  • Qwen-Image-2512艺术展览:数字藏品创作全流程
  • 抖音引流公司哪些厉害,实力怎么样
  • 抖音直播自动采集终极方案:构建企业级内容管理系统
  • DoL-Lyra技术架构深度解析:自动化构建系统与社区协作开发模式
  • 毕业设计救星:基于DamoFD-0.5G的课堂考勤系统极速搭建指南
  • 5个最火AI镜像推荐:ComfyUI开箱即用,10块钱全试遍
  • Qwen多任务协同:情感判断如何影响对话生成
  • QMC解码器终极指南:5分钟解锁所有加密音乐
  • AI不会淘汰所有销售,但会淘汰一半!不是销售会消失,而是平庸会消失。AI销售B2B大客户销售专业销售技巧客户开发培训老师培训师唐兴通分享销售技巧AI赋能销售
  • 电商海报设计新利器:Z-Image-Turbo实际应用案例
  • YOLOv8检测结果保存详解:JSON/TXT/视频全格式教学
  • BGE-Reranker-v2-m3入门教程:从环境配置到首次调用的完整流程
  • OBS多平台直播插件完全攻略:一键同步推流到各大平台
  • STM32使用IAR进行Flash编程:操作指南从零实现
  • 3dsconv终极教程:快速免费实现3DS游戏文件格式转换
  • AutoGLM-Phone-9B vs Appium对比:云端2小时快速测评
  • 小白也能玩转AI动漫创作:NewBie-image-Exp0.1保姆级教程
  • Qwen3-1.7B批量推理优化:高吞吐部署参数详解
  • 亲测有效!用fft npainting lama轻松修复老照片瑕疵
  • IndexTTS 2.0直播辅助:虚拟主播实时互动语音生成
  • GPEN支持Windows吗?跨平台部署可行性分析
  • 通义千问3-4B功能测评:4GB内存跑出30B级性能
  • MinerU 2.5实战教程:工程图纸PDF信息提取步骤详解