찾다

 >  Q&A  >  본문

java - 为什么ThreadPoolExecutor源码实现中用的是ReentrantLock锁?

private boolean addIfUnderCorePoolSize(Runnable firstTask) {
        Thread t = null;
        final ReentrantLock mainLock = this.mainLock;
        mainLock.lock();
        try {
            if (poolSize < corePoolSize && runState == RUNNING)
                t = addThread(firstTask);
        } finally {
            mainLock.unlock();
        }
        if (t == null)
            return false;
        t.start();
        return true;
    }

ThreadPoolExecutor源码实现中大量使用了ReentrantLock 锁,请问为什么使用的是ReentrantLock 锁而不是别的锁机制呢?

PHP中文网PHP中文网2803일 전882

모든 응답(0)나는 대답할 것이다

답장 없음
  • 취소회신하다