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

课时

  • 评论
  • 关于我们
开始
开始学习
立即开始学习
  • 我的进度
  • 课程
  • 任务地图
  • 课程
  • 执行流与并发风险

    C++ SELF
    等级 68,课时 0
    我们来分析当出现第二个线程时程序发生了什么:为什么事件顺序变得不确定、 race condition 与 data race 有何不同,以及为什么 UB 并不是“罕见的 bug”,而是超出语言规则的行为。通过 std :: thread、 join ()、共有变量和 ++ counter 的示例,我们学习如何设计最小安全的数据所有权契约。
    可用
  • std::thread — 启动线程、参数、join

    C++ SELF
    等级 68,课时 1
    解析 C++ 中线程的基本使用:如何用函数和 lambda 启动 std::thread,参数如何传递(拷贝,通过 std::ref/ std::cref 引用,使用 std::move 移动), join() 保证了什么,如何使用 joinable(),为什么忘记 join() 会导致 std::terminate,并通过小项目 TextStats 巩固所有内容。
    可用
  • 为什么 detach() 危险:对象生命周期与“丢失的线程”

    C++ SELF
    等级 68,课时 2
    我们来分析为什么对 std::thread 调用 detach() 经常会把线程变成“丢失的线程”:你失去了结束点( join()),由于通过引用捕获( [&])和对 this 的捕获,会产生生命周期错误( lifetime),并且这还会损害架构和调试。实践中我们看一个小项目 TaskBook,比较两种方法:detached 的拷贝与通过 join() 诚实等待。
    可用
  • std::jthread 与 std::stop_token

    C++ SELF
    等级 68,课时 3
    解析为何在 C++20/23 中出现了 std::jthread 和 std::stop_token: jthread 如何通过 RAII 将线程的管理“默认变得安全”,它与 std::thread 有何区别,如何通过 request_stop() 与 stop_requested() 实现协作式停止,以及为什么“停止”是一个协议,而不是杀死线程。最后 — 带有 spinner 的实用示例与常见错误分析。
    可用
  • 共享数据概念:什么算作共享资源,以及…

    C++ SELF
    等级 68,课时 4
    我们来解析在多线程 C++ 中应当把哪些东西视为“共享数据”:不仅是内存中的变量,还包括类似 std::cout 的输入/输出、文件、外部服务,甚至事件的顺序。学习从所有权协议开始做同步,使用通过 join() 的交换边界,借助 snapshot 复制和 thread confinement 避免共享访问,以及为何用于停止更应该使用 std::stop_token,而不是“共享”的 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