Claude隐式记忆机制:语义锚定与工程适配指南
2026/10/26 15:25:41
生产者和消费者(常见方法)
void wait()当前线程等待,直到被其他线程唤醒
void notify()随机唤醒单个线程
void notifyAll()唤醒所有线程
put数据时:放不进去会等着,叫做阻塞
take数据时:取出第一个,取不到的等着
线程池的作用
问题:每次需要任务时都创建新线程,完成后立即销毁,会消耗大量CPU和内存资源。
解决:线程池复用已创建的线程,避免频繁创建/销毁。
问题:无限制创建线程可能导致:
内存耗尽
CPU过度切换(上下文切换开销大)
系统不稳定
解决:线程池设置最大线程数,控制同时运行的线程数量。
任务到达时,通常已有空闲线程可以立即执行,无需等待线程创建。
提供统一的调度、监控和资源回收机制。
线程作为系统稀缺资源,重复使用已创建线程。
类似数据库连接池,避免频繁申请释放。
当突发大量请求时,线程池通过队列缓冲:
核心线程 → 队列 → 非核心线程(按配置策略)
避免瞬时高峰压垮系统。
支持多种队列(有界/无界、优先级队列)。
支持拒绝策略(当队列满且线程达上限时的处理方式)。
可监控线程状态、活动线程数、完成任务数等。
便于调优和问题诊断。
运行过程
线程池的参数
创建线程池的对象
任务拒绝策略
线程池主要核心原理
①创建一个池子,池子中是空的
②提交任务时,池子会创建新的线程对象,任务执行完毕,线程归还给池子
下回再次提交任务时,不需要创建新的线程,直接复用已有的线程即可
但是如果提交任务时,池子中没有空闲线程,也无法创建新的线程,任务就会排队等待
线程池的大小
线程池的缺点
配置复杂(参数需要根据场景调优)
不当配置可能导致:
队列堆积 → 内存溢出
线程数不足 → 响应慢
线程数过多 → CPU过度切换