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("已設為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循環體為空為什么不會退出循環,加入一句打印就會退出循環?
加入打印,循環應該也不是正常退出,此時是什么機制退出循環的?
總結
以上是生活随笔為你收集整理的java 线程 while循环_java多线程中while循环的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java ref 应用类型_Java中的
- 下一篇: java 从数据库取值_JAVA操作数据