乐趣区

线程安全问题产生的原理

  1. 超卖的问题

最后只有一张票,线程 1,线程 2,线程 3 分别叫 a,b,c
a 进入 run 方法后,进入循环后,因为执行了 sleep 方法,程序处于等待的阶段。同样 b,c 先后执行到了 sleep 阶段,线程处于等待的阶段。此时如果 a 苏醒后继续执行减票的操作,票数为 0, 然后 b,c 线程执行的时候,减票的时候打印出的减票为 0 和 -1.

退出移动版