日记17

今天正式进入多线程领域,用“卖票案例”重现了线程安全问题,再通过三种方案解决,终于理解了“并发”与“同步”的核心逻辑。

  • 核心实践:用三个线程模拟卖100张票,未加同步时出现“超卖”(卖出102张)和“重复卖”(同一张票卖两次),原因是多个线程同时操作 ticket 变量,出现了“指令交错”。
  • 解决方案对比:分别用“同步代码块(synchronized关键字)”“同步方法”“Lock锁”三种方式修复,发现 Lock 锁比 synchronized 更灵活(可手动控制锁的获取与释放),但需要手动写 finally 释放锁,避免死锁。
posted @ 2025-10-27 08:41  百折不可夺志  阅读(4)  评论(0)    收藏  举报