既然每个线程有自己的工作内存为什么我执行下面代码的时候主内存变量的更改能够影响线程
为什么会执行到 System.out.println(num+"*****************线程终止************");
还有为什么我把System.out.println(num);一行注释掉就永远停止不了了
那么Java到底在什么时间执行read和load、store和write
public class CourrTest02 extends Thread{
private static long num=0;
private boolean a=true;
@Override
public void run() {
while(num!=10001){
//
System.out.println(num);
}
System.out.println(num+"*****************线程终止************");
}
public static void main(String[] args) throws InterruptedException {
boolean b=true;
CourrTest02 c1=new CourrTest02();
c1.start();
Thread.sleep(1000);
for(int i=0;i<10000;i++){
c1.num=10001;
}
}
}