Размер пула потоков RecursiveAction
Я только что увидел использование для Java 7 RecursiveAction.invokeAll(), и мне интересно:
Каков размер пула задач? (или алгоритм, который определяет это..)
Если у меня много заданий (скажем, 100 заданий), следует ли мне их использовать?
1 ответ
Размер пула потоков - то, что вы устанавливаете, либо количество ядер, которые у вас есть:
public ForkJoinPool ()
Создает
ForkJoinPool
с параллелизмом, равнымRuntime.availableProcessors()
, используя фабрику потоков по умолчанию, нетUncaughtExceptionHandler
и не асинхронный режим обработки LIFO.
Или какой-то конкретный номер:
public ForkJoinPool (внутри параллелизма)
Создает
ForkJoinPool
с указанным уровнем параллелизма, фабрика потоков по умолчанию, нетUncaughtExceptionHandler
и не асинхронный режим обработки LIFO.
Пожалуйста, прочитайте JavaDoc для получения дополнительной информации.
Способ рекурсивного действия заключается в том, что он порождает несколько версий самого себя. Вы всегда начинаете с 1. Количество сгенерированных действий несколько несущественно, сотни или тысячи должны быть хорошими - до тех пор, пока они не "накапливаются".