为了账号安全,请及时绑定邮箱和手机立即绑定

细说多线程之Thread VS Runnable

难度初级
时长 1小时 0分
学习人数
综合评分9.63
171人评价 查看评价
9.8 内容实用
9.6 简洁易懂
9.5 逻辑清晰
阔以。。。。。。
很实用,原来还可以这样'近距离'接触线程,涨知识了
有点小伙伴试了下,出现 3 3 2 0 1 这种不符合常理的结果,没有达到预想中的4 3 2 1 0这就是线程的交互执行导致的;举个例子:线程1先执行卖了1张票,也即是票--1,现在票为4,但是这个线程还没没有来得及在控制台打印出剩余多少票,线程又抢到了CPU资源执行,线程2又把票--1;此时票为3,线程2输出票就为3,线程2执行完了后,线程1又再次获得CPU资源,继续把刚刚没有输出的话输出,但是此时票已经为3了,于是又输出了3。 看过多线程的小伙伴应该不难理解,这就是线程不安全,想要保证输出结果,可以使用synchronized关键字来解决
讲的好,希望有更多的课程学习
老师讲的很好 收益匪浅
深入浅出害人,我个人不适应那个老师的风格啊
涨知识了,赞老师!!!
没有对票数这个多线程共同访问的数据进行同步,使得每一个线程都有自己的一个数据源
你虽然短,但是你(精)细啊
这个老师讲的很好
很强势,学会了
讲的很好!
把售票的方法提取出来,再加上synchronized关键字,执行的时候就不会出错了
@Override
public void run() {
shoupiao();

}
public synchronized void shoupiao(){
while(ticketCount>0){
ticketCount--;
System.out.println(Thread.currentThread().getName()+"卖出了1张票,剩余"+ticketCount+"张票");
}
课程须知
学习本课程前,你需要熟练掌握Java的基础语法,熟悉Java中创建线程的两种方式,熟悉Java多线程中常用的一些方法。
老师告诉你能学到什么?
1、多线程创建方式的比较和选择 2、线程的生命周期、守护线程

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消