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

看完视频,有一个问题,想请教一下大家

在最后老师解释Runnable接口产生的结果时,剩余3张票时,线程1还没有打印,资源就被线程3占去,等抢回资源的时候才把那句话打印出来,我的问题是,等线程1把资源抢回来,成员变量ticketsCont的值不就被修改了吗,为什么还会打印输出剩余3张?如图:http://img.mukewang.com/5832b6af0001c84609410541.jpg

提问者:_菲菲菲菲 2016-11-21 16:56

个回答

  • qq_慕先生1476268
    2019-01-30 14:46:07

    窗口一已经只差打印了,但是拿不到System.out的资源,其实是3和0还有各种可能都是可能存在的,因为这是线程不安全的。

  • qq_往烟_0
    2017-12-03 16:13:55

    这个应该就是内存模型的东西了,当执行--时,让出CPU资源会记录内存快照?

  • 山河乾隆决
    2016-11-22 04:13:31

    因为其实字符串在之前就已经拼接好了,只是当一号线程重新拿到cpu资源时才打印出来