美文网首页
Thread如何中止操作执行退出

Thread如何中止操作执行退出

作者: 抠脚大汗 | 来源:发表于2018-08-28 11:43 被阅读0次

方式一:通过布尔变量,侵入业务逻辑,实现是声明quit方法,修改boolean值,在业务逻辑过程中,判断booean值,决定是否退出操作,释放资源,退出线程。

方式二:通过interrupt中断操作来执行。线程对象里会维护一个interrupt值,标记是否中断状态为真。在sleep,wait,join等阻塞业务时,轮循判断interrupt值,为真时,则抛出InterruptedException,并reset interrupt值为false;若interrupt值为false,则继续阻塞。

private volatile Interruptible blocker;
public void interrupt() {
        if (this != Thread.currentThread())
            checkAccess();

        synchronized (blockerLock) {
            Interruptible b = blocker;
            if (b != null) {
                interrupt0();           // Just to set the interrupt flag
                b.interrupt(this);
                return;
            }
        }
        interrupt0();
    }

也可通过实现Interruptible接口的interrupt(Thread t)方法,操作t线程退出相关操作

相关文章

  • Thread如何中止操作执行退出

    方式一:通过布尔变量,侵入业务逻辑,实现是声明quit方法,修改boolean值,在业务逻辑过程中,判断booea...

  • 中止线程的方法

    中止线程的方法 如何中止一个正在执行的线程? Thread#stop() java.lang.Thread#sto...

  • Service

    Android的Service Service是在main Thread中执行,Service中不能执行耗时操作(...

  • Service

    1.Service 是否在 main thread 中执行, service 里面是否能执行耗时的操作?(★★) ...

  • Service(三) - Service和Thread关系

    1. Service和Thread关系 Thread:用于开启子线程,在里边执行耗时操作,不会阻塞主线程;S...

  • android线程相关知识与梳理

    1.线程实现两种方式 继承Thread类,在run方法中执行操作 实现Runnable接口,在run方法中执行操作...

  • java线程池源码走读(一)

    execute源码 addWorker源码 我们知道一个Thread在执行完其中的run方法之后就会退出,线程的生...

  • ubuntu常用命令

    vi 存盘退出:wq保存并退出;:q!不保存强制退出;:w执行存盘操作 搜索/pattern:从光标开始处向文件尾...

  • java多线程2:Thread中的方法

    静态方法: Thread类中的静态方法表示操作的线程是"正在执行静态方法所在的代码块的线程"。 为什么Thread...

  • 线程

    线程的创建和启动方式一 创建一个继承于Thread类的子类 重写Thread类的run():将此线程执行的操作写在...

网友评论

      本文标题:Thread如何中止操作执行退出

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