问答详情
源自:2-3 应用Runnable模拟卖票

执行结果跟视频完全不一样

窗口2卖了1张票,剩余票数为:3 窗口1卖了1张票,剩余票数为:3 窗口3卖了1张票,剩余票数为:2 窗口1卖了1张票,剩余票数为:0 窗口2卖了1张票,剩余票数为:1 为什么我的执行结果是这样呢,这个跟物理设备的CUP处理器有吗?

提问者:慕函数0603164 2017-09-05 21:48

个回答

  • 我爱豆花汤
    2017-09-08 12:53:37
    已采纳

    是因为线程的执行顺序啊,每次执行都不一定是一样的。至于剩余票的问题,老师有回答啊~o(^_^)o

  • qq_往烟_0
    2017-12-03 16:09:27

    可以将count++的操作更换为原子类操作,因为++是线程不安全的

  • 慕婉清8345490
    2017-09-15 23:54:44

    那个代码是有问题,需要看完,最后老师不是说了么,需要加synchronized 保证变量的原子性。