static int x;
public static void main(String[] args) {
Thread t2 = new Thread(()->{
while(true) {
if(Thread.currentThread().isInterrupted()) {
System.out.println(x);
break;
}
}
},“t2”);
t2.start();
new Thread(()->{
try {
sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
x = 10;
t2.interrupt();
},“t1”).start();
while(!t2.isInterrupted()) {
Thread.yield();
}
System.out.println(x);
}
Java代码,为什么在t2线程被打断后,主线程的循环不会结束,当我在主线程中加入System.out.println("")或者去除Thread.yield()之后 循环可以正常结束,给我的感觉是Thread.yield影响了t2线程打断状态的可见性,等个解答谢谢