CodeGym
AI Academy
促销
CodeGym University
学习
课程
任务
调查 & 测验
游戏
帮助
日程
社区
Users
论坛
聊天
文章
成功故事
动态
评价
订阅
浅色主题

课时

  • 评论
  • 关于我们
开始
开始学习
立即开始学习
  • 我的进度
  • 课程
  • 任务地图
  • 课程
  • std::async — 启动策略

    C++ SELF
    等级 71,课时 0
    讲解为什么需要 std::async 和 std::future,C++ 中到底是什么“保证”了异步,以及 std::launch 启动策略(尤其是 std::launch::async 和 std::launch::deferred)如何影响行为。通过示例看哪些工作是真正并行执行的,哪些会被推迟到 get()/ wait(),并讨论数据的生存期、 std::future<void> 以及常见错误。
    可用
  • std::future: get()、 wait()、 wait_for() 与超时

    C++ SELF
    等级 71,课时 1
    我们来分析 std::future 这一模型,把它看作指向结果共享状态的“句柄”: wait() 与 get() 有什么区别(以及为什么 get() 会“一次性用掉票”),如何通过 wait_for()/ wait_until() 正确地做限时等待,如何解释 std::future_status 的状态( ready、 timeout、 deferred),以及如何在不使用 busy-wait 的情况下做一个整洁的进度“spinner”。
    可用
  • std::promise 与 std::packaged_task

    C++ SELF
    等级 71,课时 2
    解析 C++ 中的“手动”异步:std::promise<T> 和 std::future<T> 如何通过共享状态连接,如何手动传递结果(以及通过 std::promise<void> 发出完成信号),为什么需要 std::packaged_task 用于将任务作为对象存储/传递,以及这些与 std::async 有何不同。另有生命周期纪律、通过 std::move 转移到线程与常见错误(重复调用 get_future()、忘记 mutable、“broken promise”)。
    可用
  • async 代码中的异常

    C++ SELF
    等级 71,课时 3
    分析为什么在并发 C++ 中异常不会“在 std::async 那里冒出”,而是在获取结果的地方——调用 future.get() 时出现:shared state 的组织方式,为什么 wait()/ wait_for() 并不保证成功, std::launch::deferred 模式如何影响行为,以及如何通过 std::promise 的 set_exception、 std::exception_ptr 和 std::current_exception() 手动传递错误。最后 — 一些细节,比如 broken promise、一次性的 get() 和典型陷阱。
    可用
  • std::atomic: 标志和计数器 + stop_token 的选择

    C++ SELF
    等级 71,课时 4
    解析在 C++ 中使用 std::atomic 的实战:如何在共享标志和计数器上避免数据竞争,应该使用哪些最小操作( load()、 store()、 fetch_add()、 exchange()),为什么 atomic 无法替代 mutex,以及在正确的停止和事件等待中如何在 std::stop_token、 condition_variable 与 atomic<bool> 之间做出选择。
    可用
Learn
  • 注册
  • Java 课程
  • 任务帮助
  • 定价
  • Java 语法
社区
  • 用户
  • 文章
  • 论坛
  • 聊天
  • 成功故事
  • 动态
  • 联盟计划
Company
  • 关于我们
  • 联系方式
  • 评价
  • 媒体中心
  • CodeGym for EDU
  • 常见问题
  • 支持
CodeGymCodeGym 是一个从零开始学习 Java 编程的在线课程。该课程是初学者掌握 Java 的完美方式。它包含 1200+ 个带即时验证的任务,以及必要的 Java 基础理论。为了帮助你在学习中取得成功,我们实现了一系列激励功能:测验、编码项目、关于高效学习的内容,以及 Java 开发者职业相关内容。
关注我们
界面语言
English Deutsch Español हिन्दी Français Português Polski বাংলা
简体中文
मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
“程序员是培养出来的,不是天生的” © 2026 CodeGym
MastercardVisa
“程序员是培养出来的,不是天生的” © 2026 CodeGym