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([&pro