C++11 异步与通信之 std::async
概念简介
std::async 异步运行一个函数,将返回值保存在std::future中。
含有2个策略参数:
- launch::deferred 延迟执行,当调用wait()和get()时,任务才会被运行,且不创建线程;
- launch::async : 创建线程并执行任务,默认是此类型;
- 同样的,调用get()方法获取对象时,也是阻塞等待的。
代码示例
使用deferred策略
int Func()
{std::cout << "Func Thread id = " << std::this_thread::get_id() << std::endl;return 0;
}int main()
{ std::cout << "Main Thread id = " << std::this_thread::get_id() << std::endl;//创建延迟任务,这里不会启动新线程auto future = std::async(std::launch::deferred, Func);//调用future.get()时,才会去调用Func //读者可以试着把这行代码注释掉,你会发现Func函数根本没有创建std::cout << "Result = " << future.get() << std::endl;;//通过打印线程id我们发现,是在同一个线程中执行的,没有创建新线程return 0;
}
执行结果
Main Thread id = 140646835402560
Result = Func Thread id = 140646835402560
0
使用async策略
int Func(int n)
{std::cout << "Func Thread id = " << std::this_thread::get_id() << std::endl;return -1;
}int main()
{ std::cout << "Main Thread id = " << std::this_thread::get_id() << std::endl;//创建异步任务 使用默认策略 启动一个新线程//并且马上会执行异步任务代码auto future = std::async(std::launch::async, Func, 100);//通过睡眠发现,get()调用之前,任务已经在被执行了std::this_thread::sleep_for(std::chrono::seconds(5));std::cout << "Result = " << future.get() << std::endl;;//通过打印线程id我们发现,不是在同一个线程中执行的,创建了新线程return 0;
}
运行结果:
Main Thread id = 140052716861248
Func Thread id = 140052716857088
Result = -1
补充
与std::packaged_task相比,std::async不仅可以打包一个异步任务,std::launch::async策略下还可以帮忙创建一个新线程并执行任务,某些场景下比std::packaged_task方便一些。
相关文章:
C++11 异步与通信之 std::async
概念简介 std::async 异步运行一个函数,将返回值保存在std::future中。 含有2个策略参数: launch::deferred 延迟执行,当调用wait()和get()时,任务才会被运行,且不创建线程;launch::async : 创建线程并执…...
影视站用什么cms好?
影视站是指用于提供电影、电视剧、综艺等视频资源的网站。由于影视站需要频繁更新大量的内容,因此使用一个好的内容管理系统(CMS)非常重要。以下是几个受欢迎的影视站CMS的介绍。最新下载地址:roulang WordPress WordPress是目前…...
HOT88-乘积最大子数组
leetcode原题链接:乘积最大子数组 题目描述 给你一个整数数组 nums ,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。测试用例的答案是一个 32-位 整数。子数组 是…...
工博士与纷享销客达成战略合作,开启人工智能领域合作新篇章
近日,工博士与纷享销客在上海正式签署了战略合作协议,正式拉开了双方在人工智能与数字营销领域的合作序幕。这次合作将为双方带来更多机遇和发展空间,并为全球人工智能领域的客户提供更高效、智能的CRM解决方案。 < 双方项目人员合影 >…...
拆解与重构:慕云游首页组件化设计
目录 前言1 项目准备1.1 创建项目目录1.2 搭建项目开发环境 2 项目组件化2.1 在当前环境启动原有项目2.2 顶部组件2.3 幻灯片组件2.4 机酒自由行组件2.5 拆分余下的css文件 3 项目完善3.1 幻灯片组件3.1.1 结构和样式3.1.2 功能实现3.1.3 使用Ajax获取数据3.1.4 加载中组件 3.2…...
刷了3个月的华为OD算法题,刷出感觉了,如洁柔般丝滑,文末送《漫画算法2:小灰的算法进阶》
目录 一、考研二战,入职华为,反向调剂电子科大深圳下面分享一道2023 B卷 朋友抽中题 简易内存池:二、题目描述三、输入描述四、输出描述样例:输出样例: 五、解题思路六、Java算法源码七、效果展示1、输入2、输出3、说明…...
ip转换器哪个好用 ip地址切换器有哪些
在互联网时代,IP转换器成为了实现高效工作的常见工具。而如今,市面上涌现出了众多的IP转换器软件,使得用户在选择时感到困惑。本文将介绍一种深度IP转换器软件,探讨其特点和优势,以及与其他软件相比的差异,…...
【python】爬取豆瓣电影Top250(附源码)
前言 在网络爬虫的开发过程中,经常会遇到需要处理一些反爬机制的情况。其中之一就是网站对于频繁访问的限制,即IP封禁。为了绕过这种限制,我们可以使用代理IP来动态改变请求的来源IP地址。在本篇博客中,将介绍如何使用代理IP的技术…...
35岁职业危机?不存在!体能断崖?不担心
概述 90年,硕士毕业,干了快8年的Java开发工作。现年33岁,再过2年就要35岁。 工作这些年,断断续续也看过不少35岁找不到工作,转行,降薪入职的传闻、案例。 35岁,甚至30岁之后,体能…...
C语言——指针进阶
本章重点 字符指针数组指针指针数组数组传参和指针传参函数指针函数指针数组指向函数指针数组的指针回调函数指针和数组面试题的解析 1. 字符指针 在指针的类型中我们知道有一种指针类型为字符指针 char* int main() { char ch w; char *pc &ch; *pc w; return 0; }…...
heap pwn 入门大全 - 1:glibc heap机制与源码阅读(上)
本文为笔者学习heap pwn时,学习阅读glibc ptmalloc2源码时的笔记,与各位分享。可能存在思维跳跃或错误之处,敬请见谅,欢迎在评论中指出。本文也借用了部分外网和其他前辈的素材图片,向各位表示诚挚的感谢!如…...
树莓派RP2040 用Arduino IDE安装和编译
目录 1 Arduino IDE 1.1 IDE下载 1.2 安装 arduino mbed os rp2040 boards 2 编程-烧录固件 2.1 打开点灯示例程序 2.2 选择Raspberry Pi Pico开发板 2.3 编译程序 2.4 烧录程序 2.4.1 Raspberry Pi Pico开发板首次烧录提示失败 2.4.2 解决首次下载失败问题 2.4.2.1…...
云安全攻防(八)之 Docker Remote API 未授权访问逃逸
Docker Remote API 未授权访问逃逸 基础知识 Docker Remote API 是一个取代远程命令行界面(rcli)的REST API,其默认绑定2375端口,如管理员对其配置不当可导致未授权访问漏洞。攻击者利用 docker client 或者 http 直接请求就可以…...
2023-08-13 LeetCode每日一题(合并两个有序数组)
2023-08-13每日一题 一、题目编号 88. 合并两个有序数组二、题目链接 点击跳转到题目位置 三、题目描述 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 …...
nbcio-boot升级springboot、mybatis-plus和JSQLParser后的LocalDateTime日期json问题
升级后,运行显示项目的时候出现下面错误 2023-08-12 10:57:39.174 [http-nio-8080-exec-3] [1;31mERROR[0;39m [36morg.jeecg.common.aspect.DictAspect:104[0;39m - json解析失败Java 8 date/time type java.time.LocalDateTime not supported by default: add Mo…...
「C/C++」C/C++搭建程序框架
✨博客主页何曾参静谧的博客📌文章专栏「C/C」C/C程序设计📚全部专栏「UG/NX」NX二次开发「UG/NX」BlockUI集合「VS」Visual Studio「QT」QT5程序设计「C/C」C/C程序设计「Win」Windows程序设计「DSA」数据结构与算法「File」数据文件格式 目录 1. 分离职…...
Android 内存泄漏
名词解释 内存泄漏:即memory leak。是指内存空间使用完毕后无法被释放的现象,虽然Java有垃圾回收机制(GC),但是对于还保持着引用, 该内存不能再被分配使用,逻辑上却已经不会再用到的对象,垃圾回…...
Android上的基于协程的存储框架
在Android上,经常会需要持久化本地数据,比如我们需要缓存用户的配置信息、用户的数据、缓存数据、离线缓存数据等等。我们通常使用的工具为SharePreference、MMKV、DataStore、Room、文件等等。通过使用现有的存储框架,结合协程,我…...
虚拟现实与增强现实技术的商业应用
章节一:引言 随着科技的不断发展,虚拟现实(Virtual Reality,简称VR)与增强现实(Augmented Reality,简称AR)技术正日益成为商业领域中的重要创新力量。这两种技术为企业带来了前所未…...
抖音内容管理革命:3步轻松实现无水印视频批量下载
抖音内容管理革命:3步轻松实现无水印视频批量下载 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. …...
【技术综述】世界模型演进图谱:从Dyna到Sora,理解与预测的双重变奏
1. 世界模型的起源与核心使命 1989年,强化学习先驱Richard Sutton在论文中首次提出Dyna架构时,可能没想到这个概念会成为人工智能理解世界的基石。当时他正在思考一个简单却深刻的问题:智能体如何像人类一样,通过想象来规划行动&…...
EVA-01企业微信机器人实战:5步打造移动端图片分析助手
EVA-01企业微信机器人实战:5步打造移动端图片分析助手 1. 项目背景与价值 在移动办公场景中,我们经常遇到需要快速分析图片内容的场景:工厂设备巡检、产品设计评审、文档信息提取等。传统方式需要将图片传输到电脑端,再通过专业…...
移动端电量优化技巧
移动端电量优化技巧:让你的手机续航更持久 在移动互联网时代,智能手机已经成为我们生活中不可或缺的一部分。随着应用功能的丰富和屏幕亮度的提升,电池续航问题也日益突出。如何在不影响使用体验的前提下,有效延长手机续航时间&a…...
【开源实战】LMCache如何用KV缓存“驯服”大模型推理的显存猛兽?
1. 从显存爆炸到性能飞跃:LMCache的破局之道 第一次部署70B参数的大模型时,我被显存占用吓得差点摔了咖啡杯——加载一个长文档问答请求,显存占用直接飙到140GB,GPU瞬间亮起内存不足的警报。这种场景下,传统KV缓存机制…...
AI净界RMBG-1.4在电商场景的应用:自动生成商品白底图实战
AI净界RMBG-1.4在电商场景的应用:自动生成商品白底图实战 1. 电商商品图的痛点与解决方案 在电商运营中,商品主图的质量直接影响转化率。平台要求主图必须是纯白背景,但传统处理方法面临三大难题: 成本高:专业摄影师…...
FLUX.1-dev-fp8-dit开发环境:Anaconda虚拟环境配置
FLUX.1-dev-fp8-dit开发环境:Anaconda虚拟环境配置 1. 为什么需要专门的开发环境 你可能已经试过直接在系统Python里安装FLUX.1相关的包,结果发现不是版本冲突就是依赖打架。昨天还能跑通的代码,今天更新了一个库就报错说找不到模块&#x…...
从AFDB到本地:手把手教你用ColabFold和Foldseek搞定蛋白质结构预测与搜索
从AFDB到本地:手把手教你用ColabFold和Foldseek搞定蛋白质结构预测与搜索 在结构生物学领域,AlphaFold的出现彻底改变了蛋白质结构预测的格局。但对于大多数实验生物学家和生信初学者来说,如何将这项技术真正应用到自己的科研项目中ÿ…...
JavaScript错误处理终极指南:try-catch和异常捕获的完整教程
JavaScript错误处理终极指南:try-catch和异常捕获的完整教程 【免费下载链接】123-Essential-JavaScript-Interview-Questions JavaScript interview Questions 项目地址: https://gitcode.com/gh_mirrors/12/123-Essential-JavaScript-Interview-Questions …...
从谷歌论文到手机相册:深度拆解HDR+爆照技术如何拯救你的夜景照片
从谷歌论文到手机相册:深度拆解HDR爆照技术如何拯救你的夜景照片 当你在昏暗的餐厅里试图拍下美食,或是面对城市夜景举起手机时,是否总被模糊、噪点和高光溢出的照片所困扰?这正是HDR技术要解决的痛点。不同于传统HDR通过曝光 bra…...
