无锁编程核心原理: 从 CAS 原子操作到三种队列设计模式

无锁编程的原理梳理。从 CAS 原子操作的硬件实现出发,界定 lock-free 与 wait-free 的进展保证差异,分析 ABA 问题及其解法,说明 acquire/release 内存序的必要性,并以 SPSC/MPSC/MPMC 三种队列模式为主线串联设计与落地。

February 16, 2026 · 10 min · 2036 words · map[name:DeguiLiu]

C++ 单例模式的线程安全实现: 从 DCLP 的历史缺陷到 C++11 的修复

双重检查锁定 (DCLP) 是 C++ 并发编程中最臭名昭著的模式之一。2004 年 Scott Meyers 和 Andrei Alexandrescu 论证了它在 C++03 中不可移植地安全实现。本文从 DCLP 的历史缺陷出发,解释 C++11 内存模型如何修复它,对比 Magic Statics、acquire/release 原子操作和顺序一致性三种实现,并讨论嵌入式场景下的工程选择。

February 16, 2026 · 7 min · 1345 words · map[name:DeguiLiu]