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

细说多线程之Thread VS Runnable

难度初级
时长 1小时 0分
学习人数
综合评分9.63
171人评价 查看评价
9.8 内容实用
9.6 简洁易懂
9.5 逻辑清晰
有问题的,共享变量不添加锁怎么能保证原子性啊,线程sleep 一下,这在误人子弟啊……哎
看完,打卡。老师讲的不错。很基础,适合新手
谢谢老师,学完打卡
大家运行的结果和老师的不一样 我的运行结果出现过这样:窗口2卖了一张票,还剩余3张票
窗口1卖了一张票,还剩余3张票
窗口2卖了一张票,还剩余2张票
窗口3卖了一张票,还剩余0张票
窗口1卖了一张票,还剩余1张票
其实这一点老师在视频进度6.50这里也说了。只不过老师是以他的例子来讲而已,这一块知识在属于操作系统这门课中的并发操作。
讲得很清楚。深入浅出听的有点迷糊。不过听完这个课感觉更好听深入浅出。再去看一遍深入浅出
thanks,受益良多...
感谢~ 终于会看一些快照了
讲的真好啊,必须赞
老师讲的真不错,赞
卡成狗了。。。
这种方式不能保证操作的原子性。建议看看java.util.concurrent下面的处理方式
volatile 也不能保证原子性
加不加static没关系。这涉及到共享变量线程之间共享问题。需要synchronize或其他方式来解决
Java线程分为两类:①用户线程:运行在前台,执行具体任务(如:程序的main线程)。
②守护线程:运行在后台,为其他前台线程服务。特点:一旦所有用户线程都结束运行,守护线程会随JVM一起结束工作。(垃圾回收线程)

设置守护线程:可以通过调用Thread类的setDaemon(true)方法来设置当前线程为守护线程。
注意:①setDaemon(true)必须在start()方法之前调用,否则会抛出IllegalThreadStateException异常。
②在守护线程中产生的新线程也是守护线程。
③不是所有的任务都可以分给守护线程来执行,例如读写操作、计算逻辑。
这样就可以完美输出:
剩余车票:4 出售于thread---1 此线程共销售1张
剩余车票:3 出售于thread---3 此线程共销售1张
剩余车票:2 出售于thread---2 此线程共销售1张
剩余车票:1 出售于thread---1 此线程共销售2张
剩余车票:0 出售于thread---3 此线程共销售2张
这样的反馈了
课程须知
学习本课程前,你需要熟练掌握Java的基础语法,熟悉Java中创建线程的两种方式,熟悉Java多线程中常用的一些方法。
老师告诉你能学到什么?
1、多线程创建方式的比较和选择 2、线程的生命周期、守护线程

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消