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

【零基础学java】(等待唤醒机制,线程池补充)

等待唤醒机制

生产者和消费者(常见方法)
void wait()当前线程等待,直到被其他线程唤醒
void notify()随机唤醒单个线程
void notifyAll()唤醒所有线程

等待唤醒机制的阻塞队列方式实现

put数据时:放不进去会等着,叫做阻塞

take数据时:取出第一个,取不到的等着

线程的六种状态

线程池

线程池的作用

1减少线程创建和销毁的开销

  • 问题:每次需要任务时都创建新线程,完成后立即销毁,会消耗大量CPU和内存资源。

  • 解决:线程池复用已创建的线程,避免频繁创建/销毁。

2. 控制并发.数量,防止系统过载

  • 问题:无限制创建线程可能导致:

    • 内存耗尽

    • CPU过度切换(上下文切换开销大)

    • 系统不稳定

  • 解决:线程池设置最大线程数,控制同时运行的线程数量。

3. 提高响应速度

  • 任务到达时,通常已有空闲线程可以立即执行,无需等待线程创建。

4. 统一管理线程生命周期

  • 提供统一的调度、监控和资源回收机制。


二、核心作用

1. 资源复用

  • 线程作为系统稀缺资源,重复使用已创建线程。

  • 类似数据库连接池,避免频繁申请释放。

2. 流量控制(削峰填谷)

  • 当突发大量请求时,线程池通过队列缓冲:

    • 核心线程 → 队列 → 非核心线程(按配置策略)

  • 避免瞬时高峰压垮系统。

3. 提供灵活的任务调度策略

  • 支持多种队列(有界/无界、优先级队列)。

  • 支持拒绝策略(当队列满且线程达上限时的处理方式)。

4. 提高系统可管理性

  • 可监控线程状态、活动线程数、完成任务数等。

  • 便于调优和问题诊断。

运行过程

线程池的参数

创建线程池的对象

任务拒绝策略

线程池主要核心原理


①创建一个池子,池子中是空的
②提交任务时,池子会创建新的线程对象,任务执行完毕,线程归还给池子
下回再次提交任务时,不需要创建新的线程,直接复用已有的线程即可

但是如果提交任务时,池子中没有空闲线程,也无法创建新的线程,任务就会排队等待

线程池的大小

线程池的缺点

  • 配置复杂(参数需要根据场景调优)

  • 不当配置可能导致:

    • 队列堆积 → 内存溢出

    • 线程数不足 → 响应慢

    • 线程数过多 → CPU过度切换

http://www.cnnetsun.cn/news/576783.html

相关文章:

  • 自变量机器人宣布融资10亿:字节跳动与红杉中国是股东
  • 植物医生冲刺深交所:半年营收10亿净利7902万 解勇控制79%股权
  • Multisim首次安装遇到主数据库错误的操作指南
  • PCB设计必看:Altium Designer线宽电流对照详细说明
  • 易语言开发从入门到精通:全景复盘·进阶策略·行业认可·共生路线
  • 企业使用 ChatBI 会有数据泄露风险吗?
  • AUTOSAR架构图层级结构:基于Vector工具链建模示例
  • 行业风向标︱2025年“医疗+”热词盘点
  • 构建白名单机制防御未知USB设备(设备描述):工控实战项目
  • 基于光感反馈的自适应LED灯PWM调光设计
  • 探索go-view:轻量级数据可视化神器,让数据跃然屏上
  • 驴贷款给自己买了一个磨
  • 每日一个C++知识点|const 和 constexpr 的区别
  • 前后端分离人事系统系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程
  • ES数据库节点故障处理:实战案例详解
  • RealMem: 重新定义AI的“长期记忆”,挑战真实场景交互
  • 企业级大创管理系统管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】
  • Excel 双向数据同步:轻松实现跨单元格数据联动
  • WinDbg Preview下载使用全攻略:系统学习调试技巧
  • 大数据分布式事务:CAP定理视角下的解决方案对比
  • 零基础学OBD:汽车故障诊断原理快速理解
  • PCB封装基础:通俗解释引脚间距与焊盘设计
  • USB3.0接口定义引脚说明:嵌入式工控主板适配指南
  • 基于SpringBoot+Vue的人事系统管理系统设计与实现【Java+MySQL+MyBatis完整源码】
  • Java Web 中小型医院网站系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】
  • [特殊字符]_微服务架构下的性能调优实战[20260112165846]
  • 收到工资 1002415.13 元,爱你华为!!!
  • MATLAB实现固定基下的稀疏编码:支持LARs与SLEP的多稀疏度求解
  • Node.js WebAssembly内存API调优
  • 快速理解multisim14.3安装机制及其依赖组件