章节
问答
课签
笔记
评论
占位
占位
今日不再显示

下一节课程: 练习题 下一节 重新观看

3 秒后进入下一节

为你推荐

Marton Zhang,国内某大型互联网砖厂程序猿,常活跃于开源社区,热爱开源,乐于分享,致力于技术改变生活,希望有朝一日,能因为我而让这个世界有一些小小的不同

提问题

写笔记

代码语言
公开笔记
提交
加群二维码

打开微信扫码自动绑定

您还未绑定服务号

绑定后可得到

  • · 粉丝专属优惠福利
  • · 大咖直播交流干货
  • · 课程更新,问题答复提醒
  • · 账号支付安全提醒

收藏课程后,能更快找到我哦~

使用 Ctrl+D 可将课程添加到书签

邀请您关注公众号
关注后,及时获悉本课程动态

举报

0/150
提交
取消
全部 精华 我要发布

已采纳回答 / Peng_0008
加注释,多次编译,多次执行。

已采纳回答 / 慕粉105816642
嗯,,,

最新回答 / weibo_王延武_0
单核没关系。多核有关系。多核由于java为了提升效率进行了指令重排,所以执行顺序会不同。

最赞回答 / 洋__
呵呵,提问者没搞懂,大家不要被这个人带偏了,他才在误人子弟!估计提问者是想说内存可见了,怎么还会执行结果不一致呢?谁说过保证了内存可见性就保证执行结果是一致的??别人是内部线程类,视频里read()操作和write()操作加了synchronized是原子性的,但是又不保证read()和write()哪个先执行,所以会出现2个结果,如果是先read()执行,那么result就是0,如果write()先执行,那么result就是6。最后老师通过延时保证write()先执行,结果就是只有6。建议多学习,少抱怨...

最赞回答 / smile_evil
你让write线程休眠一会。就会出现其他状况。因为代码短执行的太快,线程没有进行切换就已经执行完毕了,所以结果只有6.

最新回答 / pythonxx
单线程并且有数据依赖关系

已采纳回答 / BetterTomorr
1、main线程为主线程, 还有 写线程 和 读线程, 可简单理解为程序中总共有这3个线程(3个线程轮流执行, 主线程等待 写线程 和 读线程执行完毕 最后程序运行终止)(主线程的任务或作用 就是 执行main 方法中的代码指令(即启动 写线程 和 读线程))2、程序分析如下:a、首先 主线程运行 , 启动了 写线程后 主线程进入休眠(此时 因为主线程休眠了,而 读线程还没有启动(需要主线程来启动)),  所以只有/仅有 写线程 获取CPU执行权,  因为写线程本身的任务简单,在主线程休眠的1秒时间内足够...

最新回答 / 雲中菩提
首先,你这休眠的是线程 main,并不会影响到synDemo读写线程的正常运行。而且就算你休眠的是synDemo的写线程,但只要它拿到了锁,那么读线程就会是堵塞状态,直到写线程释放了锁。最好还是先看看书或关于线程的博文,对同步,锁有所了解,然后再来看此视频。

最新回答 / 快乐的时光
老师之所以这么做是让我们自己加上去分析以下结果。

最新回答 / 哏誰倆呐
设置断点不容易看出来效果的 给程序更多的反应时间 就不会出现那种重排序什么的额情况了呢

已采纳回答 / MartonZhang
 出现0是因为读线程先得到了执行,读线程执行完,写线程才执行,这个我里面也有讲到,你稍微注意下,在“synchronized实现可见性(下)”的第03:30之后!另外,慕课网这点估计剪切的估计太快了,有点不太容易注意到,可以在写线程和读线程之间加个休眠操作,让写线程执行完,读线程在执行,也可以使用wait和notify来控制线程执行的顺序!
全部 我要发布
最热 最新
只看我的

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

账号登录 验证码登录

遇到问题
忘记密码

代码语言