【C++】future/promise

future/promise

1 来源

需要从线程中返回异步任务结果情形时,c++11之前:
使用指针在线程间共享数据。
传递一个指针到新的线程中,该线程在其中设置数据,直到主线程继续等待使用条件变量。当新线程设置数据并通知条件变量时,主线程将唤醒并从指针处获取数据;
示例:

void fun(int x, int y, int *ans)
{std::cout << "proc thread: " << std::hex << std::this_thread::get_id() << std::endl;*ans = x + y;
}void test_future()
{std::cout << "main thread: " << std::hex << std::this_thread::get_id() << std::endl;int a{10};int b{8};int sum{};std::thread t(fun, a, b, &sum);t.join();std::cout << "sum: " << sum << std::endl;return;
}

std::future
C++11提供future类模板,future对象提供访问异步操作结果的机制。

分类
唯一期望(unique futures, std::future<>)实例只能与一个指定事件相关联;
共享期望(shared futures, std::shared_future<>)实例能关联多个事件

一个std::future对象在内部存储一个将来会被某个provider赋值的值,并提供一个访问该值的机制,通过get()成员函数实现。在get可用前访问,会被阻塞,直至该值可用。

N 参考资料

https://www.cnblogs.com/linuxAndMcu/p/14577275.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/34201.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

守护清远采矿安全:可燃气体报警器检定工作的必要性与实施

清远市地处广东省北部&#xff0c;矿产资源丰富&#xff0c;包括金属矿产、非金属矿产等多种类型。采矿行业作为清远的重要产业之一&#xff0c;对当地经济发展起到了积极的推动作用。 然而&#xff0c;随着采矿业的快速发展&#xff0c;安全问题也逐渐凸显出来&#xff0c;尤…

05 Pytorch 数据读取 + 二分类模型

05 Pytorch 数据读取 二分类模型05 Pytorch 数据读取 二分类模型05 Pytorch 数据读取 二分类模型 01 数据读取 DataLoader&#xff08;set作为参数&#xff09; 02 Dataset 从哪读&#xff0c;怎么读&#xff1f; 功能&#xff1a;数据从哪里读取&#xff1f; 如何读取…

【第十三课】区域经济可视化表达——符号表达与标注

一、前言 地图最直接的表达就是使用符号表达。使用符号可以把简单的点线面要 素渲染成最直观的地理符号&#xff0c;提高地图的可读性。只要掌握了 ArcGIS 符号制 作的技巧&#xff0c;分析符号并总结出规则&#xff0c;就可以制作符合要求的地图符号。 &#xff08;一&#…

算法基础入门 - 1.排序

文章目录 算法基础入门第一章:排序1.1 桶排序1.2 冒泡排序1.3 快速排序1.4 买书问题算法基础入门 第一章:排序 1.1 桶排序 该算法好比桶,假设有11个桶,编号从0-11。每出现一个数,就往对应编号的桶中放入旗子,只需要数桶中旗子的个数即可。比如2号桶有1个旗子,表示2出…

自动化测试TCP和UDP的带宽

在一侧设备&#xff0c;执行iperf3 -s -i 1 另一侧设备执行以下脚本 测试长时间下以太网的tcp带宽和udp丢包率 测试某以太网转换盒的时候&#xff0c; 发现tcp带宽在刚开始的几分钟是800M左右&#xff0c;然后直线转为50M&#xff0c;并且长时间稳定 UDP的丢包率&#xff0…

Spring Boot整合ZXing实现二维码和条形码生成

1. 添加ZXing依赖到Spring Boot项目 场景描述: 在需要快速、高效地生成二维码或条形码的应用中&#xff0c;如电子票务、产品追踪、个人身份验证等&#xff0c;集成ZXing库至Spring Boot项目是至关重要的一步。 在项目的pom.xml文件中添加以下依赖以引入ZXing库&#xff1a; …

Appium APP测试学习

1、安装client编程库(客户端) (1)如果遇到以下问题可以使用全路径安装 (2)安装后导致selenium升级&#xff0c;导致某些方法失效&#xff1a;如find_element_by_id。解决方法&#xff1a;卸载两个安装包&#xff0c;后面重新安装 2、安装appium Server:&#xff08;服务端&…

【码银送书第二十一期】《大数据智能风控:模型、平台与业务实践》

人行印发的《金融科技&#xff08;FinTech&#xff09;发展规划&#xff08;2022一2025年&#xff09;》明确指出金融科技成为防范化解金融风险的利器&#xff0c;运用大数据、人工智能等技术建立金融风控模型&#xff0c;有效甄别高风险交易&#xff0c;智能感知异常交易&…

每日热榜资源

获取更多资源&#xff0c;请关注公众号&#xff1a;阿宇的编程之旅&#xff0c;回复‘书签’获取 划水摸鱼官网 网站名称&#xff1a;划水摸鱼官网网址&#xff1a;划水摸鱼官网介绍&#xff1a;提供休闲放松的内容&#xff0c;让你在忙碌之余享受片刻的宁静。 鱼塘热榜 网…

【深度揭秘】AI 幻觉背后的技术真相与应对策略,探索人工智能的未来

写在前面 AI真的能分辨真实与虚构吗&#xff1f; 如果你的 AI 助手在关键会议中搬出了一个虚构的法律先例&#xff0c;你会不会想钻地洞&#xff1f; 我们准备好为 AI 的错误买单了吗&#xff1f; 当AI的“诊断”可能让医生瞬间变成“杀手”&#xff0c;你还敢信它的建议吗&am…

uniapp/vue中实现方框的移动、缩放,旋转操作(手指操作)

效果&#xff1a; <template><view class"container"><view class"rotatable" ref"view" :style"{ left: dragLeft px, top: dragTop px, transform: scale(${scale}) rotate(${currentRotation}deg), }"src"…

Lipowerline5.0 雷达电力应用软件下载使用

1.配网数据处理分析 针对配网线路点云数据&#xff0c;优化了分类算法&#xff0c;支持杆塔、导线、交跨线、建筑物、地面点和其他线路的自动分类&#xff1b;一键生成危险点报告和交跨报告&#xff1b;还能生成点云数据采集航线和自主巡检航线。 获取软件安装包联系邮箱:289…

Selenium CSS 选择器详细讲解

详细介绍 CSS 选择器 By.CSS_SELECTOR 在 Selenium 中&#xff0c;By.CSS_SELECTOR 是一种强大且灵活的定位方式。它使用 CSS 选择器语法来查找页面上的元素。CSS 选择器支持复杂的查询语法&#xff0c;可以根据元素的标签、类名、ID、属性等进行组合定位。 示例 HTML <!…

解决Java中的AssertionError异常的常用方法

解决Java中的AssertionError异常的常用方法 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将讨论在Java开发中常见的AssertionError异常&#xff0c;并…

递归的艺术:Python中5个递归函数经典问题与解析

递归&#xff0c;这门编程艺术中的魔法&#xff0c;它让复杂的问题变得简单&#xff0c;但初学者往往觉得它神秘莫测。别怕&#xff0c;今天我们就一起揭开递归的面纱&#xff0c;通过5个生动有趣的Python案例&#xff0c;让你轻松掌握递归的奥秘&#xff01; 1. 经典的阶乘问…

常用MQ消息中间件Kafka、ZeroMQ和RabbitMQ对比及RabbitMQ详解

1、概述 在现代的分布式系统和实时数据处理领域&#xff0c;消息中间件扮演着关键的角色&#xff0c;用于解决应用程序之间的通信和数据传递的挑战。在众多的消息中间件解决方案中&#xff0c;Kafka、ZeroMQ和RabbitMQ 是备受关注和广泛应用的代表性系统。它们各自具有独特的特…

CST电磁仿真软件的参数类型和含义【电磁仿真入门教程】

如果你是一位工程师或设计师&#xff0c;那你对电磁仿真软件CST Studio Suite一定不会感到陌生。CST软件可以帮助你模拟电磁场和电路行为&#xff0c;从而优化产品设计。本文将带你了解CST电磁仿真软件的一些关键参数&#xff0c;并解释其含义。CST电磁仿真软件的参数是指在使用…

安规管理:PLM安规管理、PLM安规管理新策略

安规管理&#xff1a;PLM安规管理、PLM安规管理新策略 随着科技的飞速发展&#xff0c;电子产品已经成为我们生活中不可或缺的一部分。然而&#xff0c;这些产品在给人们带来便利的同时&#xff0c;也可能带来触电、火灾、有害辐射等安全隐患。为了保护消费者的生命财产安全&am…

JavaScript全屏,监听页面是否全屏

在JavaScript中&#xff0c;直接监听浏览器是否进入全屏模式并不直接支持&#xff0c;因为全屏API主要是关于请求和退出全屏模式的&#xff0c;而没有直接的监听器可以告知页面何时进入或退出全屏模式。但是&#xff0c;你可以通过在你的代码中跟踪全屏状态的改变来模拟这个功能…

性能测试学习-执行测试脚本,监控性能指标

1、关于使用pymatlab库实现对数据表的增加&#xff0c;获取指定列操作&#xff0c;并在另一个py文件中调用 cursor游标的使用 """ 实现数据连接&#xff0c;并操作数据库&#xff0c;生成随机的用户数据 使用游标 """ import randomimport pym…