优雅的停止线程

在平常的开发中我们想打断一个正在blocking的线程,或者结束执行任务超时的线程可以通过下面的几种方式优雅的停止线程。、

  • 1.利用标识符去停止一个线程


    image.png

    通过捕获到标识符的改变从而结束任务,结束线程。

  • 2.利用java的Interrupt()去结束线程
image.png

执行结果


image.png

通过调用Interrupt()抛出一个InterruptedException程序捕获到这个异常后结束blocking(sleeping,waiting等)

  • 3.利用设置守护线程去结束线程。
    在实际开发中,有些情况下程序没有机会去判断标识符,也没有机会去捕获到InterruptedException,这种情况下,利用守护线程的特点能有效的帮我们结束想结束的线程。


    image.png

    执行:


    image.png

    执行结果:
    image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、线程的生命周期 线程状态转换图: 1、新建状态 用new关键字和Thread类或其子类建立一个线程对象后,该线...
    我是嘻哈大哥阅读 962评论 0 8
  • 一、进程和线程 进程 进程就是一个执行中的程序实例,每个进程都有自己独立的一块内存空间,一个进程中可以有多个线程。...
    阿敏其人阅读 2,625评论 0 13
  • 单任务 单任务的特点是排队执行,也就是同步,就像再cmd输入一条命令后,必须等待这条命令执行完才可以执行下一条命令...
    Steven1997阅读 1,216评论 0 6
  • 反感人入黑道, 原谅狗撞红灯。 守寡心烦怕夜静, 为尼意乱嫌日长。 风能使波变形, 树可给山遮丑。 刀因名恶不出鞘...
    坦人阅读 186评论 4 15
  • 我不知道,你有没有去过那种很火的餐厅,需要排队的那种,你领了一个号码牌,坐在门口等着叫号,因为你爱极了他们家的一款...
    杰欧瓦阅读 136评论 1 2