课程笔记
课程/Java/后端开发
细说Java多线程之内存可见性
介绍
章节
问答
笔记
慕粉4192055
2018-01-28
加sleep
截图
0赞 · 0采集
采风Mooc
2016-11-16
此处执行结果为6的情况进行分析: 1 synchronized完美保证共享变量的可见性 2 但是不加此关键字,并不意味着就不能实现可见性
截图
0赞 · 3采集
qq_东方姑凉的fan_03719055
2016-11-11
afa
截图
0赞 · 0采集
慕粉3392781
2016-11-03
没有加synchronized,但是加了sleep,先执行了white执行完了,结果肯定是6了,
截图
1赞 · 0采集
慕粉3392781
2016-11-03
加了synchronized结果也可能是0,因为可能会先执行read
截图
0赞 · 0采集
慕粉3392781
2016-11-03
原因有很多个 即使没有加synchronized,也可能是可见的,在大多数情况都是可见的,因为编译器优化了,会揣摩程序的意图,程序运行很多次,只会有很少的情况不可见。
截图
0赞 · 1采集
梦编猿
2016-08-11
细说Java多线程之内存可见性——synchronized解决方案 Ps1:注意:这里也许会问:“为何不加synchronized也会执行可见性,主内存及时更新被获取最新值”?因为当时定义说加synchronized一定会可见性,而不加也没说一定不会,只是有可能不会,因为现在Java做了一些优化:尽量实现可见性;但是不能保证每次都成功,只是成功概率比较大99%,但还是有1%的情况会失败。所以处于安全考虑,尽量加synchronized关键字100%成功。 Ps2:有时候依然不存在线程交叉情况,但还是会先执行第二个线程,因为第一个线程把CPU让位出来,所以为了避免这种情况,可以在第一个线程后附上代码:sleep(1000);1秒之后才有机会执行线程2。 Ps3:synchronized+sleep();黄金搭档。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
截图
2赞 · 5采集
慕粉3333946
2016-05-17
synchronized实现可见性
0赞 · 0采集
qq_Fay_0
2016-04-12
可以加入休眠机制让一个线程执行完,另一个线程才执行,保证结果是6
截图
0赞 · 0采集
qq_Fay_0
2016-04-12
即使没加sychronized关键字,共享变量也可以在工作内存和主内存中得到刷新
截图
0赞 · 0采集
鬼羽子
2016-01-02
没有synchronized关键字,内存可见性同样存在
截图
0赞 · 0采集
鬼羽子
2016-01-02
重排序不应该影响本线程内的执行结果
截图
0赞 · 0采集
王正一
2015-09-29
这个课程的关键在于理解多线程的内存模型,主线程主内存,子线程工作内存
截图
0赞 · 0采集
Vidor_Chan
2015-04-23
即使不加synchronized,工作内存和主内存也是可以及时更新。这是编译器的优化,但是,并不能保证。
0赞 · 0采集
孩子key
2015-04-14
synchronizedsynchronizedsynchronizedsynchronized不能避免线程交叉执行带来的不安全
0赞 · 0采集
一个人潇洒的生活
2015-04-07
1.线程不安全的情况下,导致代码执行的结果不可定,所以需要解决线程不安全即共享变量的可见性
0赞 · 1采集
bitguy
2015-04-04
通过对线程启动顺序控制宏观上也就相当于单线程了。
0赞 · 1采集
bitguy
2015-04-04
synchronized 是一个保证。
0赞 · 0采集
数据加载中...