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

来源:2-3 应用Runnable模拟卖票

_菲菲菲菲

2016-11-21 16:56

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

写回答 关注

3回答

  • 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资源时才打印出来

    柠檬酱c

    那该如何解决这个问题呢?

    2017-08-17 10:08:09

    共 2 条回复 >

细说多线程之Thread VS Runnable

认识Thread和Runnable的区别,以及使用jstack生成线程快照

55327 学习 · 68 问题

查看课程

相似问题