search

Home  >  Q&A  >  body text

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

<code class="java">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;

    }</code>

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

PHP中文网PHP中文网2931 days ago947

reply all(0)I'll reply

No reply
  • Cancelreply