⚡ 原子操作 & 无锁编程
🎯 30章 · 从入门到实战
01
并发编程的噩梦:从竞态条件到数据竞争,为什么需要原子操作?
02
硬件基石:CPU内存模型与缓存一致性协议(MESI)深度解析
03
原子操作的灵魂:Load-Linked / Store-Conditional (LL/SC) 原理
04
x86的答案:Compare-And-Swap (CAS) 指令详解与汇编实战
05
ARM的武器:LDREX/STREX 指令详解与实战
06
RISC-V的视角:AMO(原子内存操作)指令集分析
07
编译器屏障:volatile关键字与内存屏障(barrier)的恩怨情仇
08
内核原语(上):自旋锁(Spinlock)的原子实现与性能陷阱
09
内核原语(下):读写锁(RWLock)的无锁化尝试
10
无锁队列(上):基于CAS的单生产者单消费者(SPSC)队列
11
无锁队列(下):多生产者多消费者(MPMC)队列的ABA问题
12
ABA问题的终结者:标记指针(Tagged Pointer)与Hazard Pointer
13
无锁栈:Treiber Stack 的实现与正确性证明
14
无锁链表:Michael & Scott 无锁链表算法
15
RCU机制(上):RCU(Read-Copy-Update)的基本原理与宽限期
16
RCU机制(下):RCU在Linux内核中的实现与API
17
无锁哈希表:Split-Ordered List 与 Cuckoo Hashing
18
内存管理难题:无锁内存分配器(Lock-Free Allocator)设计
19
原子操作在FreeRTOS中的应用:任务切换与临界区保护
20
原子操作在Zephyr中的应用:内核对象与同步机制
21
原子操作在RT-Thread中的应用:IPC机制与信号量
22
性能分析工具:如何用perf和ftrace定位锁竞争
23
模型检查:用TLA+形式化验证无锁算法的正确性
24
C11标准:_Atomic类型与C11内存顺序(memory_order)详解
25
C++11标准:std::atomic与std::memory_order的RAII封装
26
Rust语言:Send/Sync trait与无锁数据结构的类型安全
27
实战案例(一):设计一个无锁的日志缓冲区
28
实战案例(二):设计一个无锁的任务窃取(Work-Stealing)调度器
29
实战案例(三):设计一个无锁的实时流量统计计数器
30
总结与展望:从多核到众核,无锁编程的未来趋势