01
锁竞争的本质
从MESI到操作系统锁,深入理解锁竞争带来的延迟代价。
CPUMESI延迟
02
无锁编程基础
CAS操作与原子变量,ABA问题及其解决方案。
CASAtomicABA
03
内存屏障与volatile
Java/C++内存屏障,volatile语义与指令重排序。
内存屏障volatileJMM
04
读写锁分离
ReentrantReadWriteLock与StampedLock,读多写少优化。
读写锁StampedLock
05
细粒度锁
从粗粒度到细粒度,分段锁在ConcurrentHashMap中的应用。
分段锁ConcurrentHashMap
06
锁消除技术
JIT锁粗化、锁消除,逃逸分析与栈上分配。
JIT逃逸分析
07
偏向锁与轻量级锁
Java对象头,偏向锁撤销与批量重偏向,自旋优化。
偏向锁轻量级锁
08
自旋锁与自适应自旋
Ticket Lock、CLH、MCS,JVM自适应自旋策略。
自旋锁CLHMCS
09
无锁数据结构
Treiber Stack、Michael-Scott Queue实现原理。
无锁栈无锁队列
10
Disruptor框架
环形缓冲区设计,无锁并发框架核心机制。
RingBufferDisruptor
11
缓存行填充与伪共享
CPU Cache Line,@Contended与手动填充。
伪共享缓存行
12
线程局部存储(ThreadLocal)
ThreadLocal原理与内存泄漏,高频交易实践。
ThreadLocal无锁
13
协程与纤程
Goroutine、Project Loom,轻量级线程减少锁竞争。
协程虚拟线程
14
无锁内存分配器
TCmalloc、Jemalloc,避免malloc/free全局锁。
TCmallocJemalloc
15
零拷贝技术
mmap、sendfile、DirectBuffer,减少锁竞争。
零拷贝DirectBuffer
16
网络IO中的锁优化
epoll vs io_uring,Reactor模式锁消除。
epollio_uring
17
硬件事务内存(HTM)
Intel TSX原理与使用。
HTMTSX
18
软件事务内存(STM)
Clojure STM实现,对比HTM优劣。
STMClojure
19
无锁日志系统
LMAX Disruptor在日志中的应用,异步日志锁消除。
无锁日志Disruptor
20
无锁内存数据库
Redis单线程无锁设计,Memcached多线程锁优化。
RedisMemcached
21
无锁消息队列
Kafka与Pulsar锁竞争对比,零拷贝减少锁。
KafkaPulsar
22
无锁限流算法
令牌桶与漏桶无锁实现,基于CAS计数器限流。
限流令牌桶
23
无锁时间轮
Timing Wheel无锁实现,高频交易定时任务。
时间轮定时器
24
无锁哈希表
Cuckoo Hashing与Hopscotch Hashing,实现挑战。
无锁哈希Cuckoo
25
无锁内存池
基于Free List的无锁内存池,对象池锁消除。
内存池对象池
26
无锁状态机
状态模式与无锁状态转换,订单状态管理。
状态机无锁
27
无锁事件总线
发布-订阅模式无锁事件总线,解耦交易组件。
事件总线无锁
28
无锁序列化
FlatBuffers与Cap'n Proto,零反序列化开销。
FlatBuffersCap'n Proto
29
性能测试与调优
JMH微基准测试,量化锁竞争消除效果。
JMH基准测试
30
实战案例:无锁订单簿
从零构建无锁高频交易订单簿,综合运用所学。
订单簿实战