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

细说多线程之Thread VS Runnable

难度初级
时长 1小时 0分
学习人数
综合评分9.63
171人评价 查看评价
9.8 内容实用
9.6 简洁易懂
9.5 逻辑清晰
说的挺详细的,不错!!
例子讲的太生动了,非常感谢
很好很喜欢,点赞!新年快乐!
这个老师讲的很好,比那个扯什么三国演义的好多了,那个太扯蛋了,会影响思维

讲师回答 / MartonZhang
从报错中看是OpenJDK版本的问题,应该是-f参数在你当前版本的VM上不支持,如果要使用-f,貌似要JDK1.7以上,另外注意你的操作系统64位还是32位的,64位的貌似要加个参数,具体记不清了,你google一下!
没有线程同步吧
好东西,容易理解
最后的图错了吧 阻塞箭头应该指向就绪状态吧
thread 中 ticketsCont 改为static,也可以实现。
都回家过年了吧,我一个人来看,嘿嘿!!
沙发沙发沙发沙发

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

讲师回答 / MartonZhang
另外,第一种情况,你要搞清楚,Ingeger是不能作为同步的对象的,因为容易发生拆装箱操作,比如你的count--,实际上相当于Integer count  = new Integer(count-1);这个时候很明显,new出了一个新的Integer对象,已经不是原来的对象了,同步自然也就无效了!你可以去看下Integer的一些方法的源码!或者看下一些书对拆装箱部分的讲解!
期待下面的课程
我觉得老师想要表达的重点应该是如何体现出这两种方式的不同,所以没有用同步加锁之类的,刚刚看到在问答里面,老师也说那个说在《深入浅出java多线程》里面已经讲了,所以这里没有讲解!
看完了您的视频,其中extends Thread 类的的那个例子设计的有缺陷.那三个火车票窗口应该是共享那五张火车票,相当于多个线程访问同一个资源,您将票总数(ticketsCounts)设置为成员变量就是错误的,所以结果就是错误!期待您更严谨的课程内容
课程须知
学习本课程前,你需要熟练掌握Java的基础语法,熟悉Java中创建线程的两种方式,熟悉Java多线程中常用的一些方法。
老师告诉你能学到什么?
1、多线程创建方式的比较和选择 2、线程的生命周期、守护线程

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消