1.7.8使用return停止线程

将方法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.线程 Java中为多线程任务提供了很多的...
    SeanMa阅读 2,541评论 0 11
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,767评论 18 399
  • Java多线程学习 [-] 一扩展javalangThread类 二实现javalangRunnable接口 三T...
    影驰阅读 2,994评论 1 18
  • 在游戏中,经常需要在动画结束或者某一帧的特定时刻,执行一些函数方法。那么在动画编辑器中怎么实现呢? 添加事件 首先...
    菜鸟_一枚阅读 317评论 0 1
  • 我与你,素未逢生。 可与你相逢,你的面孔熟悉的让我忍不住哭泣。 我努力忍住这种感觉,面对着陌生人一下子泪流满面是一...
    荀素生阅读 311评论 0 0