java 线程 while循环_java多线程中while循环的问题
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("已設(shè)為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("進(jìn)入MyThread");
while (flag == true){
}
System.out.println("Mythread結(jié)束:"+this.flag);
}
}
上面的while循環(huán),當(dāng)main函數(shù)設(shè)置flag為false,循環(huán)體為空的話,后面的語句不會執(zhí)行,會一直停留在那里;而在循環(huán)體中加上一句,比如System.out.println(),循環(huán)就會結(jié)束,后面的語句就會執(zhí)行;并且在循環(huán)體中加入++i并打印,多次執(zhí)行發(fā)現(xiàn)while結(jié)束的時候,i的值都不一樣,說明不是正常結(jié)束循環(huán)。while循環(huán)體為空為什么不會退出循環(huán),加入一句打印就會退出循環(huán)?
加入打印,循環(huán)應(yīng)該也不是正常退出,此時是什么機制退出循環(huán)的?
總結(jié)
以上是生活随笔為你收集整理的java 线程 while循环_java多线程中while循环的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java ref 应用类型_Java中的
- 下一篇: java反序列化漏洞 tomcat_CV