是不是ticketCon没有加validate来修饰?每次创建三个线程,都有各自的ticketCon对象。

来源:2-2 应用Thread模拟卖票

Travis

2015-02-10 09:16

是不是ticketCon没有加validate来修饰?每次创建三个线程,都有各自的ticketCon对象。

写回答 关注

2回答

  • MartonZhang
    2015-02-10 15:13:56

    您好,加入volatile其实是通过加内存屏障使得每次读写volatile变量都从主内存中刷新,这样可以保证volatile变量及其之前的变量值的改变可以被其它线程立即看到,这当然前提是该变量是共享的,在这里可以保证不会出现打印出来的两个或三个相同count值的情况,跟其他的没有关系!

    xiaoxi...

    那老师为什么不写成static 或者设置锁,这样不就不会出现这些问题了

    2015-08-25 11:46:04

    共 1 条回复 >

  • 连宏伟HW
    2016-06-08 23:04:47

    使用volatile关键字修饰还是一样的结果,那么使用static修饰可以得到预期的效果

细说多线程之Thread VS Runnable

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

55327 学习 · 68 问题

查看课程

相似问题