C++ futures 背后的心理模型

C++ futures part 1: The mental model

C++ 标准库中的 std::promise、std::future 等类看似复杂,实则都构建在一个名为 source 的无名类之上。Raymond Chen 通过手写简化版源码,拆解了 source 如何管理值或异常的写入、等待与读取。从互斥锁到条件变量,从状态判别到异常重抛,这一系列操作揭示了异步编程的核心逻辑。作者坦言,写下这些代码不仅是为了理清思路,更是因为自己总会忘记它们的工作原理。

我之所以写这个系列,是因为我总是忘记它是如何工作的,但把它写下来能帮我记住。

同日更多故事

2026-10-21