Boost::Promise的简单实现及测试
在C++中,我们经常需要将函数的异步执行结果返回给调用者,而boost库提供了一个非常好用且高效的解决方案——promise和future。promise是一个类模板,在函数中创建一个promise对象,这个对象允许返回调用者一个future对象,之后可以在另一个线程中设置promise对象的值,当promise对象被设置时,与之相关联的future对象便可以收到通知,得到异步执行的结果。
下面我们将用一个简单的例子来展示promise和future的工作原理:
#include <iostream>
#include <thread>
#include <chrono>
#include <boost/thread/future.hpp>
int main() {
boost::promise<int> promise;
boost::future<int> future = promise.get_future();
std::thread worker_thread([&promise]() {
std::this_thread::sleep_for(std::chrono::seconds(1));
pro
本文介绍了C++中使用Boost库的Promise和Future进行异步编程的方法。通过一个简单示例展示了如何创建Promise对象,在新线程中设置Future的值,以及在主线程中获取异步执行结果。同时提到了Promise的其他有用函数如set_exception和set_value_at_thread_exit。
订阅专栏 解锁全文
4865

被折叠的 条评论
为什么被折叠?



