在学习volatile关键字的时候,写了一个例子,如下
按道理来说,不应该是卡死在准备结束,不打印end…吗? 电脑是双核的,探索中。。。
和朋友测试了一下,目前感觉是电脑的原因。。。
public class VolatileTest {
private static boolean flag=false;
public static void main(String[] args) throws InterruptedException {
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("prepare.....");
while(!flag) {
}
System.out.println("end.....");
}
}).start();
Thread.sleep(2000);
new Thread(new Runnable() {
@Override
public void run() {
prepare();
}
}).start();
}
public static void prepare() {
System.out.println("准备数据。。。。。");
flag =true;
System.out.println("准备结束。。。。。");
}
}