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

课时

  • 评论
  • 关于我们
开始
开始学习
立即开始学习
  • 我的进度
  • 课程
  • 任务地图
  • 课程
  • 深入解析 Race Conditions(竞态条件)

    C# SELF
    等级 57,课时 0
    我们会深入研究在 C# 多线程代码里竞态条件(Race Conditions)从哪儿来、为什么它们难以重现,以及如何防止它们。会看一些真实示例,涉及集合和标志位,剖析“读-改-写”操作的结构,讨论用 lock、 volatile、 Interlocked 进行保护,以及和 ConcurrentDictionary 及其 GetOrAdd 有关的模式。最后 — 常见错误和实用建议。
    可用
  • 相互死锁:Deadlocks

    C# SELF
    等级 57,课时 1
    在这节课里我们来看看多线程 C# 里的相互死锁(deadlocks):它们如何在错误的锁获取顺序( lock)下发生,如何通过调用栈识别“挂起”,以及如何通过统一的锁顺序、超时( Monitor.TryEnter)和最小化临界区来避免问题。还会聊到 Mutex、 Semaphore 和 ReaderWriterLockSlim,并分析常见错误。
    可用
  • 防止与解决 deadlock

    C# SELF
    等级 57,课时 2
    在这节课里我们会分析为什么会出现相互阻塞(deadlock)、Coffman 的四个条件,以及在 C# 里可行的实战策略:有序加锁、避免嵌套锁、用 Monitor.TryEnter 加超时、最小化临界区和使用线程安全的集合。还会聊聊诊断和安全恢复、常见坑以及实际案例。
    可用
  • 其他问题: Livelock 和 Starvation

    C# SELF
    等级 57,课时 3
    在这节课里我们聊两个多线程里很捉急的问题 — Livelock 和 Starvation:它们和 Deadlock 有啥区别,怎么在 C# 里复现(比如用 Monitor.TryEnter 和 lock),从哪些症状能定位(CPU 占用飙高、任务“永远”没完成、日志),以及怎么防护:随机暂停和 backoff、公平队列( ConcurrentQueue<T>, FIFO)、正确的线程优先级和 ReaderWriterLockSlim 的配置。
    可用
  • 用于诊断的最佳实践和工具

    C# SELF
    等级 57,课时 4
    如何编写稳健的多线程代码以避免竞态和死锁,尽量把关键区用 lock 缩到最小,选对同步原语并使用诊断工具:日志记录、分析器、 Concurrency Visualizer、dump 分析以及压力测试。实战建议、示例和针对真实 .NET 应用的检查清单。
    可用
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