← 返回全栈资料库
🔒 并发与锁
超卖 / 幂等 / 锁 / CAS —— 带图带代码,搞懂并发问题的本质和解法
并发问题是面试必考也是生产事故重灾区。这里用
SVG 图 + 代码
把每个问题讲透。
核心心法:并发问题的本质是
"共享 + 非原子 = 竞态"
。解法谱系:加锁(串行)/ CAS(原子)/ 不共享(ThreadLocal)/ 数据库层(唯一索引/条件更新)/ 分布式锁(Redis)。
01
🏃
竞态条件
count++ 为什么丢更新。SVG时序图:两线程同时读0→各算1→都写1→少加一次。
原子性
时序图
02
⚡
超卖问题
100件卖了110件。SVG:两线程同时读到stock=1→都通过→都下单。秒杀架构图。
超卖
秒杀三板斧
03
🔄
CAS 乐观锁
Compare And Swap原理。SVG流程图:读期望→比较→写入或重试。ABA问题。
CAS
ABA
04
🔐
锁对比
synchronized vs ReentrantLock对比表。锁升级:偏向→轻量→重量。
synchronized
ReentrantLock
05
🔁
幂等性
连点两次扣两次钱。4种方案:唯一索引/Redis/Token/状态机。
幂等
防重
06
🌐
分布式锁
多台机器怎么互斥。SVG:Redis加锁架构图。三个坑+Redisson看门狗。
Redis
Redisson
07
🔗
线程通信实战
父子线程通信特殊性 + 8种通信方式(volatile/wait/notify/Condition/BlockingQueue/CountDownLatch/CompletableFuture/TTL) · 完整代码注释 · 线程池下ThreadLocal失效坑 · TTL解决方案 · 10大使用陷阱 · 面试FAQ。
父子线程
CompletableFuture
TTL
08
🌐
分布式事务实战
5种方案对比(2PC/TCC/Saga/本地消息表/事务消息) + Seata(AT/TCC/Saga/XA) · 完整代码注释 · 9大业务系统对照 · 工程分档(80%场景不用分布式事务) · 对账兜底 · 8大陷阱 · 面试FAQ。
2PC
TCC
Seata
并发与锁 · 带图带代码 · 全栈资料库