课程
/后端开发
/Java
/细说多线程之Thread VS Runnable
为什么窗口卖出同一张票,难道票也是随机的,我想每个窗口卖出不同的票,求大神老师指点!
2017-12-25
源自:细说多线程之Thread VS Runnable 2-3
正在回答
关键是ticketscount--这个操作不是原子的,你在public void run(){
synchronized(this)
{
while()
代码逻辑
}
}一切就ok了
窗口1卖了一张票,打印剩余票数为2(输出结果第三行). 然后CPU资源被窗口2占用,执行了卖票操作,但是还没有执行打印输出操作。然后窗口1获取CPU资源执行操作继续卖票,打印(输出第四行)。窗口1操作完毕,然后窗口2获取CPU资源执行最后的输出打印操作(第五行)。
举报
认识Thread和Runnable的区别,以及使用jstack生成线程快照
4 回答出票剩余相同?
2 回答票数不对,为什么呢?
3 回答继承Thead的也可以实现票总量的共享啊
3 回答用互斥与同步的知识写售票系统
1 回答卖票的问题
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号