等保制度与ISO27001的区别与联系
2015-07-10 11:07
162 查看
有如下代码:
最后的结果可能是:NoVisibility可能会一直保持循环, 因为对于读线程来说, ready的值可能永远不可见. 甚至更奇怪的现象是, NoVisibility可能会打印0, 因为经过优化,可能机器底层会先执行ready=true
上面第二个结果好理解, 第一个我就不明白.为什么ready值可能永远不可见导致程序会一直保持循环?
public class NoVisibility { private static boolean ready; private static int num; private static class ReaderThread extends Thread { public void run() { while (!ready) { Thread.yield(); } System.out.println(num); } } /** * @param args */ public static void main(String[] args) { new ReaderThread().start(); num = 24; ready = true; } }
最后的结果可能是:NoVisibility可能会一直保持循环, 因为对于读线程来说, ready的值可能永远不可见. 甚至更奇怪的现象是, NoVisibility可能会打印0, 因为经过优化,可能机器底层会先执行ready=true
上面第二个结果好理解, 第一个我就不明白.为什么ready值可能永远不可见导致程序会一直保持循环?
相关文章推荐
- 在Java程序中使用数据库的新方法
- JQuery之回到顶部的特效
- java web 监听器listener详解
- 图片的操作
- 3.传统线程互斥技术
- 实例分析用指针访问二维数组的几种方法
- 我的上半年“手相”-----“奔跑中的2015”
- android禁止界面横屏
- Guava 15新特性介绍
- 2.传统定时器技术回顾 - Timer类 TimerTask
- mongodb的基本操作
- 关于<img>标签无法显示名字中带有中文的图片的问题
- GRE写作必备句型
- 多维数组的指针类型转换和参数传递
- 要么忍,要么狠,要么滚
- 搜索引擎系列1:什么是正向索引?什么是倒排索引?
- 选项卡模式设计
- MyEclipse中Maven的配置
- 1.传统线程技术的回顾-JDK5多线程
- 【设计模式】动态代理Proxy_02