当前位置: 首页 > news >正文

体验C++的异步,有返回值的线程

#include <future>
#include <iostream>
#include <stdexcept>/*
https://learn.microsoft.com/zh-cn/cpp/standard-library/thread-safety-in-the-cpp-standard-library?view=msvc-170
这里指出std::cout对象是线程安全的。
*/int main() {/*C++标准指出,如果策略为 launch::async,该函数的行为就像它在新线程中调用可调用的对象一样。这意味着,虽然它通常会导致创建新线程,但实现可能会使用其他机制来实现等效的行为。https://learn.microsoft.com/zh-cn/cpp/standard-library/future-functions?view=msvc-170#async这里lambda表达式、函数指针就像Java的Callable,std::future就像Java的Future。*/std::future<int> future=std::async(std::launch::async,[]() {std::this_thread::sleep_for(std::chrono::milliseconds(500));std::cout<<"线程"<<std::this_thread::get_id()<<"将抛出异常\n";throw std::runtime_error("线程内出错");return 42;});std::cout<<"主线程"<<std::this_thread::get_id()<<"执行其它任务\n";std::this_thread::sleep_for(std::chrono::seconds(1));try {std::cout<<"主线程试图获取结果\n";int result=future.get();std::cout<<"结果:"<<result;}catch (const std::runtime_error& e) {std::cout<<e.what()<<'\n';}
}
http://www.jsqmd.com/news/602157/

相关文章:

  • LN4812 150-mW 立体声音频功率放大器
  • C++ RAII 资源管理模式的现代应用
  • MobaXterm完全指南:从入门到精通的远程管理效率提升术
  • 如何用music-tag-web解决音乐标签混乱问题?3大创新功能深度解析
  • 黑苹果启动引导方案一键生成:OpCore Simplify让复杂配置流程化繁为简
  • C++类与对象(1)—初步认识
  • STM32裸机开发不需要堆
  • OpenClaw+千问3.5-9B开发助手:自动排查日志错误与执行测试
  • 告别性能焦虑:5个被忽略的华硕设备优化神器隐藏功能
  • 幻兽帕鲁存档迁移救星:5分钟解决服务器切换导致的角色丢失问题
  • Ubuntu 安装 PyCINRAD(cinrad)踩坑记录
  • 微信聊天记录永久保存:你的数字记忆守护者
  • 如何用Vue2快速构建企业级后台系统:Vue-admin全功能框架详解
  • 分析PET发泡片材设备品牌的客户忠诚度,说说哪些品牌更靠谱 - mypinpai
  • WindowsCleaner:当C盘爆红警报响起,你的系统救星来了
  • 基于RK3576J的识别方案,如何实现100%追溯零差错
  • ok-ww:用智能自动化重构鸣潮游戏体验
  • 从正则表达式到算符优先:手把手教你用C语言写语法分析器
  • Python实战:天干地支与五行阴阳的自动化转换工具
  • Windows 11系统优化:基于Win11Debloat的深度性能调优与隐私保护方案
  • 告别手动造数据!用JMeter JSR223预处理程序+Groovy脚本,5分钟搞定接口签名和AES加密
  • 高效极简专业:LazyVim开源工具的个性化配置与效率提升指南
  • 图像质量评价新思路:CLIP如何理解‘好看’与‘不好看’(含实验对比)
  • 3大维度解析PeaZip:这款开源压缩神器如何重构你的文件管理体验
  • 我有3张1000元的京东e卡,想1天内变现,哪个平台回收快? - 京顺回收
  • C++类与对象(2)—构造函数析构函数
  • 批量链接管理:3秒处理100个链接的开源效率工具
  • Cursor Pro激活完全指南:三步解锁无限AI编程能力的实用技巧
  • 还在为黑苹果配置发愁?试试这个智能EFI生成工具,四步搞定复杂设置
  • 打破窗口尺寸限制:SRWE让你的应用程序随心所欲变换大小 [特殊字符]