【可乐教育】C++ 多线程:std::future(可乐vicky学生教)

概念

我们前面介绍的std::thread 是C++11中提供异步创建多线程的工具,只能是异步运行任务,却无法获取任务执行的结果,一般都是依靠全局对象,全局对象在多线程下是及其不安全的,为此标准库提供了std::future类模板来关联线程运行的函数和函数的返回结果,这种获取结果的方式是异步的。

std::future 通常由某个 Provider 创建,你可以把 Provider 想象成一个异步任务的提供者,Provider 在某个线程中设置共享状态的值,与该共享状态相关联的 std::future 对象调用 get(通常在另外一个线程中) 获取该值,如果共享状态的标志不为 ready,则调用 std::future::get 会阻塞当前的调用者,直到 Provider 设置了共享状态的值(此时共享状态的标志变为 ready),std::future::get 返回异步任务的值或异常(如果发生了异常)。

一个有效(valid)的 std::future 对象通常由以下三种 Provider 创建,并和某个共享状态相关联。Provider 可以是函数或者类,他们分别是:

  • std::async 函数std::promise::get_future,get_future 为 promise 类的成员函数std::packaged_task::get_future,此时 get_future为 packaged_task 的成员函数

一个 std::future 对象只有在有效(valid)的情况下才有用(useful),由 std::future 默认构造函数创建的 future 对象不是有效的(除非当前非有效的 future 对象被 move 赋值另一个有效的 future 对象)。

特别声明:[【可乐教育】C++ 多线程:std::future(可乐vicky学生教)] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

友多辅食机适合宝宝吗?2025智能母婴辅食料理机选购全解析(辅食机好用不)

选择一款合适的辅食机,不仅能减轻妈妈们的烹饪负担,还能让宝宝吃得更营养健康。友多辅食机以其小巧精致的设计和丰富的功能,成为许多家庭的首选。本篇文章将为你详细介绍友多辅食机是否真的适合宝宝,同时帮助你在众多的辅食机中做出正确的选择。

友多辅食机适合宝宝吗?2025智能母婴辅食料理机选购全解析(辅食机好用不)

北京同仁堂人参阿胶固元糕适合贫血养颜送礼吗?——解读2025消费升级趋势(北京同仁堂人参养荣丸)

同仁堂人参阿胶固元糕以高品质药材闻名,是否真的适合贫血和养颜需求?本文深入剖析其功效与送礼价值,助您精准选购,轻松应对贫血、美容、营养补给和礼品选择等多重需求。

北京同仁堂人参阿胶固元糕适合贫血养颜送礼吗?——解读2025消费升级趋势(北京同仁堂人参养荣丸)

澳“夺枪英雄”伤情严重 理性与勇气的抉择

2025年12月14日傍晚,悉尼邦迪海滩的光明节庆典被枪声撕裂。50声爆响在10分钟内划破天际,10人倒下,血染沙滩。混乱中,一段视频悄然流传:一名白衣男子悄然靠近持枪者,猛然扑上,夺枪制敌。他不是警察,没有装备,却成了众人眼中的“英雄”

澳“夺枪英雄”伤情严重 理性与勇气的抉择

实时盯紧企业污水:企业污水水质监测仪,动态掌握水质变化(实时盯紧企业污染的措施)

它可以安装在企业污水排放口、污水处理设施的关键节点等位置,不间断地对污水的各项水质指标进行检测。企业管理人员可以随时随地通过手机或电脑查看污水水质情况,及时掌握生产过程中的环境风险。环保部门则可以对辖区内企业…

实时盯紧企业污水:企业污水水质监测仪,动态掌握水质变化(实时盯紧企业污染的措施)

狙击蝴蝶》『陈妍希』主动献吻挑逗情欲,狂亲68秒共度春宵画面超酥(狙击蝴蝶『陈妍希』配音)

当下的职场里,化身精英的李雾(周柯宇 饰)在台上沉稳自信,台下悄然探班的岑矜(『陈妍希』 饰)眼中满是欣赏。临别前,岑矜轻抚安睡恋人眉眼再度落下的吻,将不舍与深爱刻入每一帧画面,让这份跨越时空的浓情,甜到令人心悸…

《<strong>狙击蝴蝶</strong>》『陈妍希』主动献吻挑逗情欲,狂亲68秒共度春宵画面超酥(狙击蝴蝶『陈妍希』配音)