打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
volatile在32位win7操作系统32位jdk里的有无都一样
public class TestVolatile {
public static void main(String[] args) {
ThreadDemo td = new ThreadDemo();
new Thread(td).start();
System.out.println("判断JDK版本:"+System.getProperty("java.version")); //判断JDK版本  
System.out.println("判断是32位还是64位 : "+System.getProperty("sun.arch.data.model")); //判断是32位还是64位
while(true){
if(td.isFlag()){
System.out.println("------------------");
break;
}
}
}

}

class ThreadDemo implements Runnable {

private boolean flag = false;

@Override
public void run() {
try {
Thread.sleep(200);
} catch (InterruptedException e) {
}

flag = true;
System.out.println("flag=" + isFlag());

}

public boolean isFlag() {
return flag;
}

public void setFlag(boolean flag) {
this.flag = flag;
}

}
上面代码flag变量是否加volatile在32位win7系统32位jdk运行结果都是一样,都会打印出“------------------”。
运行结果:
判断JDK版本:1.7.0_80
判断是32位还是64位 : 32
------------------
flag=true

在64位jdk里flag变量不加volatile的运行结果:
判断JDK版本:1.8.0_141
判断是32位还是64位 : 64
flag=true
在64位jdk里flag变量加volatile的运行结果:
判断JDK版本:1.8.0_141
判断是32位还是64位 : 64
------------------
flag=true

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Java Volatile的一个实际应用场合
高并发Java(3):Java内存模型和线程安全
Java并发编程学习笔记 深入理解volatile关键字的作用
某种特殊场景下JDK编译器对 Java 基本类型的封包操作!
数组实例猜数
If(flag) 与 if(!flag)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服