public class OrderDemo2 {
private static boolean ready=false;
private static int num;
static class Ordered extends Thread{
@Override
public void run() {
while(!ready){
Thread.yield();
}
System.out.println(num);
}
}
public static void main(String[] args) throws InterruptedException {
Thread t = new Ordered();
t.start();
num=55;
ready=true;
t.join();
}
}
结果是55,还有可能出现0吗?运行了好多次也没出现0的情况
当然一定是55了,因为你在ready之前都不会执行,然后把num设成55之后才把ready设为true