news 2026/5/12 18:56:53

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【零基础学java】(等待唤醒机制,线程池补充)

等待唤醒机制

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

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

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

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

线程的六种状态

线程池

线程池的作用

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

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

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

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

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

    • 内存耗尽

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

    • 系统不稳定

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

3. 提高响应速度

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

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

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


二、核心作用

1. 资源复用

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

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

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

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

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

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

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

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

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

4. 提高系统可管理性

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

  • 便于调优和问题诊断。

运行过程

线程池的参数

创建线程池的对象

任务拒绝策略

线程池主要核心原理


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

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

线程池的大小

线程池的缺点

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

  • 不当配置可能导致:

    • 队列堆积 → 内存溢出

    • 线程数不足 → 响应慢

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

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

Keil5显示中文异常?快速理解文件编码匹配原理

Keil5中文注释乱码?一文讲透编码匹配的本质与实战修复你有没有遇到过这样的场景:打开一个刚从同事那里接过来的Keil工程,点开.c文件一看——“测试函数”变成了“”,注释里的“初始化完成”显示成“˜”……满屏乱码,根…

作者头像 李华
网站建设 2026/5/12 9:11:50

SpringBoot+Vue 网站平台完整项目源码+SQL脚本+接口文档【Java Web毕设】

💡实话实说:CSDN上做毕设辅导的都是专业技术服务,大家都要生活,这个很正常。我和其他人不同的是,我有自己的项目库存,不需要找别人拿货再加价,所以能给到超低价格。摘要 随着互联网技术的快速发…

作者头像 李华
网站建设 2026/5/9 3:03:04

SpringBoot+Vue 大创管理系统管理平台源码【适合毕设/课设/学习】Java+MySQL

摘要 在当今信息化快速发展的时代,高校大学生创新创业项目(大创)的管理需求日益增长,传统的人工管理方式效率低下且容易出错。大创项目涉及学生、导师、项目申报、评审、经费管理等多个环节,亟需一套高效、智能的管理系…

作者头像 李华
网站建设 2026/5/9 10:44:05

企业级车辆管理系统管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】

摘要 随着城市化进程加快和物流行业迅猛发展,企业对车辆管理的需求日益增长。传统的人工管理方式效率低下,难以应对复杂的车辆调度、维护和数据分析需求。企业亟需一套高效、智能的车辆管理系统,以实现车辆信息的实时监控、资源优化配置和成本…

作者头像 李华
网站建设 2026/5/10 7:28:59

零基础学习proteus8.16下载安装教程的完整步骤

从零开始搭建电路仿真环境:手把手教你安装 Proteus 8.16 你是不是也曾在搜索框里输入“ proteus8.16下载安装教程 ”,结果跳出来一堆广告、病毒链接和残缺不全的步骤?明明只想安安心心学个单片机仿真,怎么连软件都装不上&#…

作者头像 李华
网站建设 2026/5/10 8:35:25

电路设计入门准备:Multisim14.3环境搭建手把手教程

从零搭建电路仿真环境:手把手带你装好 Multisim 14.3 你是不是也遇到过这种情况——老师刚布置了一个放大电路作业,要求仿真验证波形,结果一查才发现自己电脑上连个像样的电路仿真工具都没有?或者好不容易下载了 Multisim&#xf…

作者头像 李华