线程停止_标识位

package com.qiliang.demo06_标志位停止线程;
/*
    1.建议线程正常停止,利用次数,不建议死循环
    2.建议使用标志位,设置一个标志位
    3.不要使用stop或者destroy等过时的方法或jdk不建议使用的方法
 */
public class StopThreadTest implements Runnable{

    // 1.设置一个标识位
    private boolean flag = true;

    @Override
    public void run() {
        int i = 0;
        while (flag){
            System.out.println("run...Thread"+i++);
        }
    }

    // 2.设置一个公开的方法停止线程,转换标志位
    public void stop(){
        this.flag=false;
    }
    public static void main(String[] args) {
        StopThreadTest stopThreadTest = new StopThreadTest();


        new Thread(stopThreadTest).start();

        for (int i = 0; i < 1000; i++) {
            System.out.println("main线程"+i);
            if(i==900){
                // 调用stop方法切换标志位,让线程停止
                stopThreadTest.stop();
                System.out.println("线程该停止了");
            }
        }

    }
}
posted @ 2020-04-28 14:37  阿亮在努力  阅读(233)  评论(0)    收藏  举报