美文网首页
10、线程池之interruptIdleWorkers

10、线程池之interruptIdleWorkers

作者: kele2018 | 来源:发表于2020-03-17 15:25 被阅读0次

private void interruptIdleWorkers(boolean onlyOne) {
        final ReentrantLock mainLock = this.mainLock;
        mainLock.lock();
        try {
            for (Worker w : workers) {
                Thread t = w.thread;
                //假如worker正在执行任务 是获取不到锁的
                if (!t.isInterrupted() && w.tryLock()) {
                    try {
                        t.interrupt();
                    } catch (SecurityException ignore) {
                    } finally {
                        w.unlock();
                    }
                }
                if (onlyOne)
                    break;
            }
        } finally {
            mainLock.unlock();
        }
}

相关文章

网友评论

      本文标题:10、线程池之interruptIdleWorkers

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