首页 > 其他分享 >std::future 如何保存多个对象进行同步等待

std::future 如何保存多个对象进行同步等待

时间:2024-06-24 11:29:12浏览次数:19  
标签:std 异步 同步 get future shared wait

std::future 是一个 C++11 引入的标准库类,可用于异步获取计算结果。通常情况下,std::future 可以通过 get() 函数来等待异步操作完成,并获取其结果。 如果需要等待多个异步操作完成并获取它们各自的结果,可以使用 std::future 的姊妹类 std::shared_future 来实现。 std::shared_future 与 std::future 类似,不同之处在于它可以被多个线程同时访问和等待。因此,可以将多个 std::shared_future 对象保存到一个容器中,然后使用 std::shared_future 的成员函数 wait() 或 get() 等待这些异步操作完成,并获取它们的结果。 例如,假设有两个异步任务 task1 和 task2,它们分别返回类型为 T1 和 T2 的结果。可以使用以下代码来创建 std::shared_future 并保存到一个 vector 容器中:

 
查看代码

接下来,可以使用 std::shared_future 的成员函数 wait() 或 get() 等待这些异步操作完成,并获取它们的结果。例如:

for (const auto& f : futures) {
  f.wait();
}
 
T1 result1 = future1.get();

T2 result2 = future2.get();

在上面的代码中,wait() 函数等待所有异步操作完成,而 get() 函数分别获取每个异步任务的结果。

标签:std,异步,同步,get,future,shared,wait
From: https://blog.csdn.net/booming2/article/details/139920353

相关文章

  • 自动同步github项目到本地
    参考https://blog.csdn.net/qq_41832237/article/details/103474283开源github项目想要同步到本地gitlab将github项目克隆至本地项目需要是开源的,用户有权限clone#gitclonehttps://github.com/liuyueming/salt.git添加用于同步github项目的内部gitlab远程仓库#git......
  • 接入效率提升90%,华为云空间助力开发者高效实现应用数据同步
    十年铸剑,破茧成蝶。从2015年立项,到2019年8月9日HarmonyOS操作系统正式发布,再到HarmonyOSNEXT携六大原生鸿蒙体验正式吹响商用号角,HarmonyOSNEXT开创性的为行业和开发者带来了新发展机遇。ArkData作为统一的数据访问框架,构建统一的鸿蒙数据标准,实现“书同文,车同轨”;同时将跨设备......
  • 【C语言】线程同步
    【C语言】线程同步线程同步1.互斥锁2.读写锁3.条件变量4.信号量最后线程同步  线程同步是指在多线程的情况下,如果多个线程去访问共享资源,需要按照一定规则顺序依次去访问,保证共享资源的数据一致性。1.互斥锁互斥相关函数//互斥量pthread_mutex_tmutex;......
  • 【Netty】Future & Promise
    Future&Promise在异步处理时,经常用到这两个接口首先要说明netty中的Future与jdk中的Future同名,但是是两个接口,netty的Future继承自jdk的Future,而Promise又对nettyFuture进行了扩展jdkFuture只能同步等待任务结束(或成功、或失败)才能得到结果netty......
  • 【永磁同步电机PMSM直接转矩控制(DTC)Simulink仿真】
    文章目录前言一、直接转矩控制(DTC)是什么?二、三相PMSM传统的DTC框图三、Simulink仿真模型搭建前言本章首先介绍永磁同步电机传统直接转矩控制(DirectTorqueControl,DTC)的基本工作原理和实现方法,然后搭建仿真模型并给出仿真结果。后续为了改善传统DTC存在的缺......
  • 操作系统的发展史、多道技术、进程理论、进程的三状态、同步异步/阻塞与非阻塞、开启
    【操作系统发展史】1为什么要使用操作系统呢?2程序员无法把所有的硬件操作细节都了解到,管理这些硬件并且加以优化使用是非常繁琐的工作,3这个繁琐的工作就是操作系统来干的,有了他,程序员就从这些繁琐的工作中解脱了出来,4只需要考虑自己的应用软件的编写就可以了,应用软件......
  • zotero的同步设置问题
    zotero作为阅读文献的神器,同步是非常重要的一个功能。结果,今天打开zotero发现笔记不见了,这可是我将近两个月的笔记啊。先是换成了最新版的zotero7bete版本,然后试了下文件同步,还是没有看到笔记,最后还设置了下本机的文件夹,后来还是在文库的未分类条目下找到了笔记,赶紧恢复到我的......
  • SqlserverCDCcrudSourceSink mssql数据实时同步demo
    packageorg.hu.fk.datastream_connector;importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSONObject;importcom.ververica.cdc.connectors.base.options.StartupOptions;importcom.ververica.cdc.connectors.shaded.org.apache.kafka.connect.data.Fie......
  • 操作系统--N 个进程通过屏障实现同步 课程设计
    一、功能简介当一个进程到达屏障的时候被屏障阻塞,当 N个进程都到达屏障的时候,一起唤醒 N 个进程,使得 N个进程一起开始进入下一个阶段的工作。引入一个专门的进程来广播唤醒 N个进程。 由于 Windows操作系统采用基于优先级的抢占式调度策略,因此该专门进程的优先级和......
  • readhat8搭建SFTP双机高可用并配置Rsync数据实时同步
    环境准备:主机host-61-118:192.168.61.118host-61-119:192.168.61.119vip:192.168.61.220检测openssh版本,版本必须大于4.8.p1,否则需要升级openssh版本[root@host-61-118~]#ssh-VOpenSSH_7.4p1,OpenSSL1.0.2k-fips26Jan2017关闭防火墙systemctlstopfirew......