课程
/后端开发
/Java
/细说多线程之Thread VS Runnable
出现这种情况是怎么回事?
窗口1卖了一张票,剩余票数为:3
窗口3卖了一张票,剩余票数为:2
窗口2卖了一张票,剩余票数为:3
窗口3卖了一张票,剩余票数为:0
2016-03-12
源自:细说多线程之Thread VS Runnable 2-3
正在回答
可能是因为并非窗口1首先获得CPU时间片,而是其他线程。
首先是窗口2 ,执行到count--之后,sysout时就被阻塞了。注意此时count=4。
然后是窗口1 ,执行了整个run方法 ,此时count=3。
然后是窗口3 ,执行了整个run方法 ,此时count=2。
此时窗口2恢复,继count--之后执行,输出count=3。
然后是窗口3 ,执行了整个run方法 ,此时count=0。
微微shirly 提问者
正解,我的也出现这种
窗口2卖了1张票,剩余票数为:3
窗口1卖了1张票,剩余票数为:3
窗口3卖了1张票,剩余票数为:2
窗口1卖了1张票,剩余票数为:0
窗口2卖了1张票,剩余票数为:1
举报
认识Thread和Runnable的区别,以及使用jstack生成线程快照
4 回答这个结果该如何分析呢?有两个剩余票数为2
1 回答runnable卖票的问题
4 回答出票剩余相同?
3 回答卖票线程问题
1 回答我执行后,没有显示剩余四张票。