Почему java ForkJoinPool по умолчанию ограничивает параметр параллелизма

Это конструктор по умолчанию для ForkJoinPool.

public ForkJoinPool() {
    this(Math.min(MAX_CAP, Runtime.getRuntime().availableProcessors()),
         defaultForkJoinWorkerThreadFactory, null, false);
}

И это все аргумент конструктора.

public ForkJoinPool(int parallelism,
                    ForkJoinWorkerThreadFactory factory,
                    UncaughtExceptionHandler handler,
                    boolean asyncMode)

MAX_CAP - это

static final int MAX_CAP      = 0x7fff;        // max #workers - 1

Почему лимит MAX_CAP и 0x7fff имеет особое значение?

0 ответов

Другие вопросы по тегам