#include <iostream>
#include <future>
#include <thread>
// 定义一个简单的函数,返回一个整数
int add(int a, int b) {
std::this_thread::sleep_for(std::chrono::seconds(1)); // 模拟耗时操作
return a + b;
}
int main() {
// 使用 std::async 创建一个异步任务,并获取 std::future 对象
std::future<int> futureResult = std::async(std::launch::async, add, 5, 3);
// 打印提示信息
std::cout << "Waiting for the result..." << std::endl;
// 等待异步任务完成并获取结果
int result = futureResult.get(); // 阻塞直到结果可用
// 打印结果
std::cout << "Result: " << result << std::endl;
return 0;
}
std::async
:用于启动一个异步任务。它会立即返回一个 std::future
对象,该对象可以用来获取异步任务的结果。std::future
:表示一个未来可用的值,通常与 std::async
或其他异步操作一起使用。可以通过 get()
方法来获取结果,该方法会阻塞当前线程,直到结果可用。std::launch::async
:指定任务以异步方式执行。如果不指定,默认情况下 std::async
可能会选择同步或异步执行,具体取决于实现。std::this_thread::sleep_for
:模拟耗时操作,使线程暂停一段时间。这段代码展示了如何使用 std::future
和 std::async
来创建和管理异步任务,并在任务完成后获取其结果。
上一篇:c++ to_string
下一篇:c++ 结构体初始化
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站