欢迎光临散文网 会员登陆 & 注册

线程的停止的代码

2020-04-09 14:53 作者:小垃圾kiki  | 我要投稿
package cn.jd.state;
/*
 * 终止线程的两种方式
 * 1.线程正常执行完毕(因为它自身是有次数的限制的,执行完了就结束了)
 * 2.外部干涉(加入标识)
 * 不要使用stop,destroy因为它们过时了,有点不安全
 *
 */
public class TerminateThread implements Runnable{
    //1.加入标识标记线程体是否可以运行
    private boolean flag=true;  //这个就是一个开关
    private String name;
    
    public TerminateThread(String name) {
        this.name = name;
    }
    @Override
    public void run() {
        int i=0;
        //2.关联标识为真线程体可以运行,假的时候就结束运行
        while(flag) {
            System.out.println(name+"-->"+i++);
        }
        
    }
    //3.对外提供方法改变标识
    public void change() {
        this.flag=false;
    }
    public static void main(String[] args) {
        TerminateThread tt=new TerminateThread("老大");
        new Thread(tt).start();
//        tt.flag=false;
        for(int i=0;i<100;i++) {
            if(i==50) {
                tt.change();
//                tt.flag=false;
            }
            System.out.println("主线程在运行");
        }
        
    }

}

线程的停止的代码的评论 (共 条)

分享到微博请遵守国家法律