std::async介绍并使用
std::async是C++11引入的一个用于异步执行函数或函数对象的工具。它可以用于并行地执行函数,并在需要时获取函数的返回值。下面是一个简单的示例,演示了如何使用std::async:
#include <iostream>
#include <future>
// 一个简单的函数,将两个整数相加并返回结果
int Add(int a, int b) {
return a + b;
}
int main() {
// 使用std::async异步执行函数
std::future<int> future_result = std::async(Add, 5, 3);
// 在需要时获取函数的返回值
int result = future_result.get();
std::cout << "Result: " << result << std::endl;
return 0;
}
在上面的示例中,我们首先定义了一个简单的函数Add,它将两个整数相加并返回结果。然后,我们使用std::async来异步执行Add函数,传递两个整数参数(5和3)。std::async返回一个std::future对象,表示异步任务的未来结果。最后,我们使用get函数从std::future中获取异步任务的结果。
需要注意以下几点:
-
std::async会创建一个新的线程或使用线程池来执行函数,具体取决于实现。 -
使用
get函数获取结果时,如果异步任务尚未完成,调用将阻塞,直到结果可用。 - <

本文介绍了C++11中std::async和std::thread的使用及区别。std::async用于异步执行函数,可获取返回值,会创建新线程或用线程池,性能开销较高。std::thread用于手动创建线程,需手动管理生命周期,不能直接获取返回值。选择使用哪个取决于具体需求。
最低0.47元/天 解锁文章
1392

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



