这个专栏从硬件、多核架构讲起,一步步走到语言级的内存模型和 C++11 之后的并发原语,目标是帮你把那些“偶发、难复现”的并发 Bug 放回一个可解释的框架里。
目前专栏下的文章包括:
- 《为什么你的多线程代码总是“捉摸不透”?——从多核架构说起》(
multithread-ghosts-and-multicore.md):先从多核、缓存一致性和乱序执行的角度解释并发问题的物理根源。 - 《编程语言的“红绿灯”哲学:内存模型设计背后的权衡》(
memory-model-tradeoffs.md):对比早期 C/C++、Java、Go、C++ 等语言在强内存模型与性能之间的不同取舍。 - 《C++ 原子与内存模型:到底在帮你挡掉哪些诡异行为?》(
cpp-atomics-and-memory-model.md):结合典型的“flag + data”例子,说明硬件 barrier、原子类型和memory_order在实际代码中的作用。 - 《C/C++11 内存模型:给普通人一条直路,也给专家一整柜开关》(
cpp-memory-model-cpp11-design.md):从数据竞争、UB、DRF-SC 到 atomics 库和六种内存序,系统讲解 C/C++11 共享内存模型的设计思路与使用策略。
后续如果再扩展到更具体的并发数据结构、锁自由算法或线程池实现,也会继续放在本专栏下。你可以把这里当作整个 C++ 并发系列的入口页。