Java, точнее, база сбора eclipse, имеет метод с именем ...
asparallel(ExecutorService ES, int batchSize)
Он принимает два аргумента, как показано. Что такое аргумент batchSize
?
Фон
Это не количество активных потоков. Это определяется ExecutorService
. Чтобы проиллюстрировать это, это поток схемы c кода, который я предоставил (не могу поделиться больше).
ExecutorService executor = Executors.newWorkStealingPool(pThreads);
List<Object> mParallelOutput = objectsOfInterest.toList()
.asParallel(executor, batchsize1)
.flatCollect(myObject-> MySubComponent.toList()
.asParallel(executor, batchsize2)
.flatCollect(p -> p.performComputation(myObject));
В качестве примера у меня есть «куча» вычислений (performComputation()
метод), который необходимо выполнить для 1-32 объектов в списке objectsOfInterest
. Все вычисления могут выполняться параллельно, и мы должны быть максимально эффективными. Пытаясь понять поток, я хочу знать, что аргумент batchsize
для метода asparallel()
. Кроме того, я не уверен, что двойной вызов asparallel в приведенном выше примере кода имеет какое-либо дополнительное преимущество.