C++11多线程(八):future用法详解

本文详细介绍了C++11中的std::future和std::async,阐述了它们在多线程编程中的作用。std::future允许从异步任务获取结果,常与std::async配合使用。std::async能创建异步任务并返回std::future对象,通过get方法获取结果。文章还解释了async的启动策略,并给出示例代码展示其用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         C++ 11多线程不能直接从thread.join()获得想要的结果,必须定义一个变量,在线程执行时对这个变量赋值,然后执行join(), 过程比较复杂。

         std::future可以从异步任务中获取结果,一般与std::async配合使用,std:async用于创建异步任务,实际上就是创建一个线程执行相应任务,然后std::future对象调用get获取该值(通常在另一个线程中获取)。

        使用 std::funture类时需要包含如下头文件

#include <future>
using namespace std;

std::future构造函数

std::future的拷贝构造函数是被禁用的,只提供默认的构造函数,普通赋值操作也被禁用,只提供了move赋值操作。

future(const future&) = delete;   //拷贝禁用
fut
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

令狐掌门

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值