为了便于理解 std::future
和 std::promise
的实现工作原理,我们可以创建一个简化的版本。这包括共享状态、Promise
设置值、Future
获取值的核心机制。我们的示例代码将实现 SimplePromise
和 SimpleFuture
两个类,二者通过一个共享状态实现线程间的通信和同步。
实现代码
1. 定义共享状态
共享状态是 Promise
和 Future
之间共享的数据区域,用于存储值以及同步访问。
#include <iostream>
#include &l