第1章
线程基础与内存模型
理解线程的本质、线程与进程的区别、现代CPU内存架构、缓存一致性协议(MESI)。
基础CPU
第2章
线程的创建与生命周期
POSIX线程创建、C++11 std::thread、Python threading模块、线程状态转换。
多语言状态
第3章
线程同步之互斥锁
互斥锁原理、std::mutex使用、死锁的产生与预防、锁的粒度控制。
同步死锁
第4章
线程同步之条件变量
条件变量工作机制、生产者-消费者模型、虚假唤醒问题、std::condition_variable。
条件变量生产者-消费者
第5章
线程同步之读写锁
读写锁适用场景、std::shared_mutex、读写锁性能分析、升级/降级锁。
读写锁性能
第6章
线程同步之信号量与屏障
信号量原理、POSIX信号量、std::barrier、循环屏障。
信号量屏障
第7章
原子操作与内存序
std::atomic基础、内存序(relaxed/consume/acquire/release/acq_rel/seq_cst)、无锁编程入门。
原子内存序
第8章
内存分配器基础
malloc/free内部机制、brk/sbrk系统调用、内存碎片问题、ptmalloc架构。
分配器ptmalloc
第9章
多线程内存分配挑战
线程安全的内存分配、TLS缓存、内存池设计、常见内存分配器对比(jemalloc/tcmalloc)。
TLSjemalloc
第10章
栈内存管理
线程栈大小设置、栈溢出检测、栈帧结构、栈上分配(ASIO)。
栈溢出
第11章
堆内存管理
堆内存结构、自由链表、bin管理、内存对齐、伙伴系统。
堆伙伴系统
第12章
内存池设计
固定大小内存池、可变大小内存池、slab分配器、对象池模式。
内存池slab
第13章
引用计数与智能指针
shared_ptr实现原理、weak_ptr解决循环引用、引用计数线程安全、atomic_ref_count。
智能指针引用计数
第14章
写时复制(COW)
COW原理、std::string的COW实现、多线程下的COW问题、RCU(Read-Copy-Update)基础。
COWRCU
第15章
RCU机制详解
RCU核心思想、宽限期(Grace Period)、多线程RCU实现、RCU与读写锁对比。
RCU宽限期
第16章
无锁数据结构
无锁栈实现、无锁队列(Michael-Scott队列)、ABA问题、Hazard Pointer。
无锁ABA
第17章
内存屏障与volatile
编译器重排序、CPU乱序执行、内存屏障指令(mfence/lfence/sfence)、volatile语义。
屏障volatile
第18章
缓存友好编程
缓存行对齐、伪共享(False Sharing)、cache line padding、数据布局优化。
缓存伪共享
第19章
NUMA架构内存管理
NUMA节点概念、内存亲和性、numactl工具、NUMA-aware分配策略。
NUMA亲和性
第20章
内存泄漏检测
Valgrind使用、AddressSanitizer、LeakSanitizer、自定义内存追踪器。
泄漏Sanitizer
第21章
内存越界与野指针
栈缓冲区溢出、堆溢出检测、野指针产生原因、安全编程规范。
越界野指针
第22章
RAII与资源管理
RAII设计模式、ScopeGuard、智能锁(lock_guard/unique_lock)、资源获取即初始化。
RAII智能锁
第23章
线程局部存储(TLS)
__thread关键字、thread_local(C++11)、TLS性能分析、TLS应用场景。
TLSthread_local
第24章
协程与内存管理
协程栈、对称/非对称协程、C++20协程内存模型、协程与线程对比。
协程C++20
第25章
垃圾回收机制
标记-清除算法、引用计数法、三色标记法、Go GC与Java GC对比。
GC三色标记
第26章
内存序与Lock-Free编程
memory_order详解、Lock-Free队列实战、Wait-Free概念、性能基准测试。
Lock-FreeWait-Free
第27章
多线程调试与性能分析
GDB多线程调试、ThreadSanitizer、perf工具、热点分析。
调试perf
第28章
内存模型与编译器优化
C++内存模型、happens-before规则、编译器屏障、asm volatile。
内存模型编译器
第29章
分布式系统内存管理
共享内存(mmap)、分布式缓存一致性、内存数据库、RDMA基础。
分布式RDMA
第30章
综合实战:高性能内存池设计
需求分析、架构设计、实现细节、性能调优、测试验证。
实战内存池