跳到正文

分类

Java 并发

共 7 篇

Java 并发

从 ThreadLocal 到 ScopedValue:线程上下文传递的演进

1 问题背景:为什么需要线程本地变量 在 Web 服务、链路追踪、日志框架等场景中,经常需要在一次请求的调用链上传递「隐式参数」:traceId、用户 ID、事务上下文、Locale 等。如果把这些参数逐层作为方法参数传递,中间层往往只是透传,既不灵活,也会让方法签名膨胀。 …

继续阅读
Java 并发

从源码看 AQS

AQS 是 Java 并发包的基础抽象框架,它将多线程同步的通用逻辑(如线程排队、阻塞、唤醒、状态原子性维护)进行了统一封装。基于这一框架,开发者能以极低的代码成本,高效地实现诸如 …

继续阅读
Java 并发

乐观锁与悲观锁:并发控制的两条路径

多线程或多事务同时读写同一份数据时,核心矛盾只有一个:如何保证"读—改—写"这一连串操作不被彼此打断,同时又不把系统拖死。乐观锁和悲观锁是应对这一矛盾的两套经典策略。它们不是两种"锁实现",而是两种对冲突发生概率的不同假设,由此推导出不同的 …

继续阅读
Java 并发

搞懂线程池,先把 Worker 机制啃明白

线程池这块的源码,很多人看过一遍就忘,或者只记住了几个参数的含义,对内部的运行机制其实并不清楚。今天就从源码层面,把运行机制、Worker 的设计、锁的选择、以及异常处理,认真过一遍。 任务进来之后,发生了什么 先把整体流程过一下。 一个 Task 提交进来,线程池先看当前 …

继续阅读