停止線程:
1、不推薦使用JDK提供的stop(),destroy()方法
2、推薦線程自己停止下來
3、建議使用标志位進行終止線程,當flag=false的時候,線程終止
package lesson04;
public class TestStop implements Runnable{
//1、設定線程終止标志位
private Boolean flag = true;
//2、線程執行體使用辨別符
@Override
public void run() {
int i = 0;
while (flag){
System.out.println("線程執行了"+(i++));
}
}
//3、建立方法改變标志
private void changeFlag() {
this.flag=false;
}
public static void main(String[] args) {
//建立線程
TestStop testStop = new TestStop();
new Thread(testStop).start();
for (int i = 0; i < 1000; i++) {
System.out.println("main執行了"+i);
//當執行到900的時候終止線程
if (i == 900) {
//調用方法終止線程
testStop.changeFlag();
System.out.println("線程終止=========================");
}
}
}
}
注意:推薦使用次數來改變辨別位終止線程,避免死循環。次數指的是main()執行的次數,而不是線程執行的次數!