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

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

等待唤醒机制

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

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

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

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

线程的六种状态

线程池

线程池的作用

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

  • 问题:每次需要任务时都创建新线程,完成后立即销毁,会消耗大量CPU和内存资源。
  • 解决:线程池复用已创建的线程,避免频繁创建/销毁。

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

  • 问题:无限制创建线程可能导致:
    • 内存耗尽
    • CPU过度切换(上下文切换开销大)
    • 系统不稳定
  • 解决:线程池设置最大线程数,控制同时运行的线程数量。

3. 提高响应速度

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

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

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

二、核心作用

1. 资源复用

  • 线程作为系统稀缺资源,重复使用已创建线程。
  • 类似数据库连接池,避免频繁申请释放。

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

  • 当突发大量请求时,线程池通过队列缓冲:
    • 核心线程 → 队列 → 非核心线程(按配置策略)
  • 避免瞬时高峰压垮系统。

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

  • 支持多种队列(有界/无界、优先级队列)。
  • 支持拒绝策略(当队列满且线程达上限时的处理方式)。

4. 提高系统可管理性

  • 可监控线程状态、活动线程数、完成任务数等。
  • 便于调优和问题诊断。

运行过程

线程池的参数

创建线程池的对象

任务拒绝策略

线程池主要核心原理


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

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

线程池的大小

线程池的缺点

  • 配置复杂(参数需要根据场景调优)
  • 不当配置可能导致:
    • 队列堆积 → 内存溢出
    • 线程数不足 → 响应慢
    • 线程数过多 → CPU过度切换

Read more

开源字体在Android设备上的免Root应用:霞鹜文楷屏幕阅读版全攻略

开源字体在Android设备上的免Root应用:霞鹜文楷屏幕阅读版全攻略 【免费下载链接】LxgwWenKaiLxgwWenKai: 这是一个开源的中文字体项目,提供了多种版本的字体文件,适用于不同的使用场景,包括屏幕阅读、轻便版、GB规范字形和TC旧字形版。 项目地址: https://gitcode.com/GitHub_Trending/lx/LxgwWenKai 在移动设备个性化领域,开源字体正逐渐成为用户表达个性的重要方式。对于Android用户而言,更换系统字体通常面临Root权限的技术门槛和安全风险。本文将详细介绍如何利用霞鹜文楷屏幕阅读版(LXGW WenKai Screen)这一开源字体项目,在不获取Root权限的情况下,为Android设备实现字体的安全更换与优化配置。 字体价值定位:重新定义移动阅读体验 霞鹜文楷屏幕阅读版是基于日本FONTWORKS Klee One字体开发的开源中文字体项目,其核心价值在于解决传统字体在移动设备上的显示缺陷。与系统默认字体相比,该字体通过优化的笔画粗细和间距设计,在手机屏幕上呈现出更接近纸质书籍的阅读体验。 图1:霞

By Ne0inhk
夜莺-Nightingale-开源云原生监控分析系统部署 Prometheus 作为时序库使用(配置多数据源)

夜莺-Nightingale-开源云原生监控分析系统部署 Prometheus 作为时序库使用(配置多数据源)

夜莺-Nightingale-开源云原生监控分析系统部署 Prometheus 作为时序库使用(配置多数据源) * 一、前言 * 二、Prometheus安装步骤 * 1. 下载并安装Prometheus * 2. 关键配置:启用Remote Write接收器 * 3. 创建Systemd服务 * 4. 启动并验证服务 * 三、验证Remote Write功能 * 四、修改夜莺配置文件对接时序库 * 1. 再增加一个Prometheus 时序库。 * 2. 重启夜莺监控(N9E)服务: * 3. 夜莺数据源管理新增数据源 * 五、常见问题解决 * 1. 夜莺转发数据时报404错误 * 2. 权限问题 * 3. 端口冲突 * 六、总结 * 参考链接 💐The Begin💐点点关注,收藏不迷路💐 一、前言 Prometheus是一款开源的监控系统和时序数据库,

By Ne0inhk
最新版 Kimi K2.5 完整使用教程:从入门到实战(开源部署+API接入+多模态核心功能)

最新版 Kimi K2.5 完整使用教程:从入门到实战(开源部署+API接入+多模态核心功能)

月之暗面(Moonshot AI)重磅发布Kimi系列最新开源多模态大模型——Kimi K2.5,一经推出便引爆开发者社区。作为“Agentic AI元年”的标杆开源模型,Kimi K2.5凭借1万亿总参数量、原生三模态融合、Agent集群协作(Agent Swarm)等核心优势,在SWE-Bench Verified编码评测中斩获76.8分,视觉理解精度对标GPT-5.2,且支持本地部署、在线调用、API接入全链路使用方式,免费开放商业使用权,成为个人开发者与企业落地AI应用的首选模型。 本文是Kimi K2.5最新、最全面的实战使用教程,从“零门槛在线使用”到“本地开源部署”,再到“API接入实战”“核心功能拆解”,每一步都配套可复用代码,无论你是新手还是资深开发者,都能快速上手并落地Kimi K2.5的核心能力。 一、前置认知:Kimi K2.

By Ne0inhk