Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c++ future

作者:灭世杀   发布日期:2025-08-23   浏览:81

#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;
}

解释说明:

  1. std::async:用于启动一个异步任务。它会立即返回一个 std::future 对象,该对象可以用来获取异步任务的结果。
  2. std::future:表示一个未来可用的值,通常与 std::async 或其他异步操作一起使用。可以通过 get() 方法来获取结果,该方法会阻塞当前线程,直到结果可用。
  3. std::launch::async:指定任务以异步方式执行。如果不指定,默认情况下 std::async 可能会选择同步或异步执行,具体取决于实现。
  4. std::this_thread::sleep_for:模拟耗时操作,使线程暂停一段时间。

这段代码展示了如何使用 std::futurestd::async 来创建和管理异步任务,并在任务完成后获取其结果。

上一篇:c++ to_string

下一篇:c++ 结构体初始化

大家都在看

c++闭包

c++单引号和双引号的区别

c++ 注释

c++如何判断素数

c++格式化字符串

c++ orm框架

队列c++

c++freopen怎么用

c++ 获取系统时间

c++进制转换函数

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站