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

课时

  • 评论
  • 关于我们
开始
开始学习
立即开始学习
  • 我的进度
  • 课程
  • 任务地图
  • 课程
  • 共享资源与同步:并发访问问题

    JAVA 25 SELF
    等级 52,课时 0
    这节课将介绍在多线程应用中什么是共享资源,为什么会出现竞态条件(race condition)和“丢失更新”,以及如何使用 synchronized 保护数据。我们将拆解同步的基本用法(方法与代码块),讨论来自 java.util.concurrent 的现代工具( Lock、 ReentrantLock、 Semaphore 等),看看计数器递增的实践示例以及常见错误( i ++ 非原子性、错误的锁对象、关于 volatile 的误区)。
    可用
  • synchronized, volatile:语法与用法

    JAVA 25 SELF
    等级 52,课时 1
    多线程实战讲座:讲解关键字 synchronized(代码块与方法、对象监视器以及在类级别 ClassName.class 上的锁)的工作方式;区分通过 volatile 提供的可见性与操作原子性的差别;为什么将 boolean 标志设为 volatile 很方便,而自增 count ++ 需要同步。对比何时选择 synchronized、何时选择 volatile,并剖析常见错误。
    可用
  • ReentrantLock 与 ReadWriteLock:区别与示例

    JAVA 25 SELF
    等级 52,课时 2
    通过实践对比基于 synchronized 的经典同步与来自包 java.util.concurrent.locks 的更灵活原语: ReentrantLock 和 ReadWriteLock。我们将讲解如何显式管理锁( lock()/ unlock()、带超时的 tryLock())、如何使用 ReentrantReadWriteLock 扩展读取并发,“公平性”( fair 模式)是什么意思、各个工具适用的场景,以及最常见的错误。
    可用
  • 互斥锁与信号量:语法与实践

    JAVA 25 SELF
    等级 52,课时 3
    在本讲中,我们将解析 Java 中的关键同步原语:如何使用 synchronized 和 ReentrantLock(方法 lock()/ unlock(),以及 try- finally 结构)保护临界区,还将介绍如何通过 Semaphore 限制并行度(方法 acquire()/ release())。我们会在表格中对比互斥锁与信号量,讨论实际用例(银行、连接数受限的服务器)以及导致 deadlock 和性能损失的典型错误。
    可用
  • 同步常见错误解析

    JAVA 25 SELF
    等级 52,课时 4
    对 Java 多线程常见错误的实战拆解:在 ReentrantLock 和 Semaphore 上忘记调用 unlock()/ release()(用 try- finally 解决)、为 synchronized 选择了错误的监视器、互相阻塞的死锁(deadlock)与加锁顺序、过度同步,以及 volatile 的适用边界与用 AtomicInteger 的替代。配套示例、建议和通俗类比——让代码不再“卡死不动”。
    可用
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