検索

ホームページ  >  に質問  >  本文

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日前883

全員に返信(0)返信します

応答なし
  • キャンセル返事