volatile用于保证数据的同步,也就是可见性
package com.lzy.others;
public class TestVolatile {
private /*volatile*/ static int num=0;
public static void main(String[] args) {
new Thread(()->{
while(num==0) {//死循环 为了让CPU"忙"的没时间看num是否有改变,此处也不要写代码
}
}) .start();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
num=1;
}
}
代码在没有加入volatile时
这儿会一直在运行,加入volatile后,内部会直接同步num=1;程序在1秒后停止