美文网首页
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如何中止操作执行退出

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