JAVA 停止线程:flag标记

说明

run() 方法中,每次执行时,先判断标记,再决定是执行还是终止执行

java

线程类

package day21;

public class S8提前停止线程 extends Thread{

    private int length = 100;
    /**
     * 定义成员变量,默认为true,表示运行
     */
    private boolean flag = true;

    /**
     * 当变量是boolean类型时,没有 getXXX() 方法,而是叫 isXXX()
     * @return
     */
    public boolean isFlag() {
        return flag;
    }

    public void setFlag(boolean flag) {
        this.flag = flag;
    }

    /**
     * 多线程要执行的代码,写在run() 中
     */
    @Override
    public void run() {

        for( int i=0;i<length;i++){
            /*
             * 当flag为true时,正常运行
             * 当flag为false时,停止
             */
            if(!flag){
                return;//break
            }
            System.out.println("兔子跑了"+i+"米");

        }

        System.out.println("兔子跑到终点,结束!");
    }


}

测试类

package day21;

public class S8TEST {

    public static void main(String[] args) {
        S8提前停止线程 thread = new S8提前停止线程();

        thread.start();
        try {
            Thread.sleep(1);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        thread.setFlag(false);

    }
}

原文出处:http://malaoshi.top/show_1IX3cCy4eVc6.html