天天看點

Java多線程之終止線程

停止線程:

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()執行的次數,而不是線程執行的次數!