课程
/后端开发
/Java
/细说Java多线程之内存可见性
main线程最后System.out.println("Number:" + volDemo.getNumber()); 为什么一定在while(){}之后运行,不是会重排序吗?难道是有数据依赖关系?
2018-10-14
源自:细说Java多线程之内存可见性 4-2
正在回答
main 线程是会和 new 出来的线程并行执行的,如果没有那个 while 判断,下面这行代码
System.out.println("Number:" + volDemo.getNumber());
就会在其他线程执行完之前就执行了。
加 while 判断,就是为了等五百个线程执行完毕
太感谢了,我也解决了。就是把AnimationEnd事件里面的SetAnimation全部改为StartAnimation亲,一定要记住学习html中的标签是学习它的语义,也就是每个标签都有它自己的用途,而不要看它的表现(样式),因为样式在后面css样式中是可以任意去修改的。
举报
用两种方式实现内存可见性,代领大家深层次学习Java中的内存
2 回答关于重排序
1 回答重排序由谁来做?
5 回答synchronized是否限制内部代码的重排序
1 回答2.1和2.2间没有数据依赖关系?会发生重排序?
2 回答关于同步锁,你在主线程里写的那个不会进行重排序?