#include <iostream>
#include <thread>
#include <future>
void calculateResult(std::promise<int>& promiseObj) {
// 模拟耗时计算
std::this_thread::sleep_for(std::chrono::seconds(2));
// 设置结果到 promise 中
promiseObj.set_value(42);
}
int main() {
// 创建一个 promise 对象
std::promise<int> promiseObj;
// 获取与 promise 关联的 future
std::future<int> futureObj = promiseObj.get_future();
// 启动一个新的线程执行计算
std::thread workerThread(calculateResult, std::ref(promiseObj));
// 在主线程中等待任务完成,并获取结果
int result = futureObj.get();
std::cout << "Result: " << result << std::endl;
// 等待工作线程结束
workerThread.join();
return 0;
}
使用future和