您当前的位置: 首页 >  Java

java持续实践

暂无认证

  • 1浏览

    0关注

    746博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Java 如何正确的停止线程

java持续实践 发布时间:2020-08-16 20:57:32 ,浏览量:1

文章目录
      • 停止线程的原理
      • 线程在什么情况下会停止
      • 如何使用interrupt 停止线程
        • 通常线程会在什么情况下停止

停止线程的原理

使用interrupt来通知线程的停止, 而不是强制的去停止线程.

由于线程执行的业务逻辑可能比较的复杂, 在停止线程之前会执行一系列的保存等操作完成后,再停止线程, 而不是立即停止线程.

线程在什么情况下会停止

线程只有在两种情况下会停止

  1. run方法中的代码逻辑都运行完毕了
  2. run方法中有异常出现, 并且没有进行try catch的捕获操作, 也会造成线程的停止.
如何使用interrupt 停止线程 通常线程会在什么情况下停止

普通情况下停止线程的代码示例如下 在run方法中的业务逻辑为打印出10000的整数, 在main方法中, 使用了Thread.sleep(1000); , 让run方法运行了1s后,调用interrupt 方法去停止线程. 并且在run方法中, 使用Thread.currentThread().isInterrupted() 去判断线程是否被停止了. 注意此处的Thread.currentThread().isInterrupted() 一定要加上, 否则即使main方法调用了thread.interrupt(); ,线程也不会进行停止.

public class RightWayStopThreadWithoutSleep implements Runnable {

    @Override
    public void run() {
        Integer num = 0;

        //打印出10000的倍数
        while (! Thread.currentThread().isInterrupted() &&  num             
关注
打赏
1658054974
查看更多评论
0.2460s