美文网首页
1.7.8使用return停止线程

1.7.8使用return停止线程

作者: 农家男孩 | 来源:发表于2017-06-26 22:50 被阅读0次

将方法interrupt()与return结合使用也能实现停止线程的效果。

/**
 * MyThread线程测试
 * @author wuyoushan
 * @date 2017/3/21.
 */
public class MyThread extends Thread {
    
    @Override
    public void run() {
       while (true){
           if(this.isInterrupted()){
               System.out.println("停止了!");
               return;
           }
           System.out.println("timer="+ System.currentTimeMillis());
       }
    }
}

/**
 * @author wuyoushan
 * @date 2017/3/20.
 */
public class Run {
    public static void main(String[] args){
        try{
            MyThread thread=new MyThread();
            thread.start();
            Thread.sleep(200);
            thread.interrupt();
        }catch (InterruptedException e){
            e.printStackTrace();
        }
    }
}

运行结果为:

timer=1490575062355
timer=1490575062355
timer=1490575062355
timer=1490575062355
timer=1490575062355
timer=1490575062355
timer=1490575062355
停止了!

不过还是建议使用“抛异常”的方法来实现线程的停止,因为在catch块中还可以将异常向上抛,使线程停止的事件得以传播。

摘选自 java多线程核心编程技术-1.7.8

相关文章

网友评论

      本文标题:1.7.8使用return停止线程

      本文链接:https://www.haomeiwen.com/subject/upcscxtx.html