public class Test{
public static void main(String[] args) {
try {
MyThread th = new MyThread();
th.start();
Thread.sleep(1000);
th.setter(false);
System.out.println("已设为false");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
class MyThread extends Thread {
private boolean flag = true;
public boolean getter() {
return flag;
}
public void setter(boolean fl) {
this.flag = fl;
}
public void run() {
System.out.println("进入MyThread");
while (flag == true){
}
System.out.println("Mythread结束:"+this.flag);
}
}
上面的while循环,当main函数设置flag为false,循环体为空的话,后面的语句不会执行,会一直停留在那里;而在循环体中加上一句,比如System.out.println(),循环就会结束,后面的语句就会执行;并且在循环体中加入++i并打印,多次执行发现while结束的时候,i的值都不一样,说明不是正常结束循环。
while循环体为空为什么不会退出循环,加入一句打印就会退出循环?
加入打印,循环应该也不是正常退出,此时是什么机制退出循环的?
慕尼黑的夜晚无繁华
相关分类