欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java通过共享变量结束run停止线程的方法示例

程序员文章站 2024-02-16 10:13:46
stop()方法已经被弃用,原因是不太安全。api文档中给出了具体的详细解释。通过interrupted()方法打断线程。不推荐。通过共享变量结束run()方法,进而停止线...

stop()方法已经被弃用,原因是不太安全。api文档中给出了具体的详细解释。
通过interrupted()方法打断线程。不推荐。
通过共享变量结束run()方法,进而停止线程。如实例

复制代码 代码如下:

public class threadinterrupt {
    public static void main(string []args){
        runner run = new runner();
        run.start();
        try {
            thread.sleep(10000);
        } catch (interruptedexception e) {
            // todo auto-generated catch block

        }

        //run.stop();//已经废弃的方法,不建议使用,过于粗暴
        //run.interrupt(); //抛出异常,但是在异常处理中写业务显然不合适,不建议使用
        run.flag=false;//建议使用的停止线程的方法
    }
}

class  runner extends thread{
    boolean flag = true;
    public void run(){
    /*    while(true){
            system.out.println(new date()+"----");
            try {
                sleep(1000);
            } catch (interruptedexception e) {
                // todo auto-generated catch block
                system.out.println("interrupted");
                return;
            }
        }
        */

        while(flag){
            system.out.println(new date()+"----");
            try {
                sleep(1000);
            } catch (interruptedexception e) {
                // todo auto-generated catch block
                system.out.println("interrupted");
                return;
            }
        }
    }
}