Thread如何中止操作执行退出

方式一:通过布尔变量,侵入业务逻辑,实现是声明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如何中止操作执行退出)