reactor-core/src/main/java/reactor/core/publisher/ParallelFlux.java
public final <R> ParallelFlux<R> reduce(Supplier<R> initialSupplier,
			BiFunction<R, ? super T, R> reducer) {
		Objects.requireNonNull(initialSupplier, "initialSupplier");
		Objects.requireNonNull(reducer, "reducer");
		return onAssembly(new ParallelReduceSeed<>(this, initialSupplier, reducer));
	}
public final <R> ParallelFlux<R> reduce(Supplier<R> initialSupplier,
			BiFunction<R, ? super T, R> reducer) {
		Objects.requireNonNull(initialSupplier, "initialSupplier");
		Objects.requireNonNull(reducer, "reducer");
		return onAssembly(new ParallelReduceSeed<>(this, initialSupplier, reducer));
	}
public final < R > ParallelFlux < R > reduce ( Supplier < R > initialSupplier , BiFunction < R , ? super T , R > reducer ) { Objects . requireNonNull ( initialSupplier , "initialSupplier" ) ; Objects . requireNonNull ( reducer , "reducer" ) ; return onAssembly ( new ParallelReduceSeed <> ( this , initialSupplier , reducer ) ) ; }
Reduces all values within a 'rail' to a single value (with a possibly different
type) via a reducer function that is initialized on each rail from an
initialSupplier value.
<p>
Note that the same mapper function may be called from multiple threads
concurrently.

@param <R> the reduced output type
@param initialSupplier the supplier for the initial value
@param reducer the function to reduce a previous output of reduce (or the initial
value supplied) with a current source value.

@return the new {@link ParallelFlux} instance
Reduces all values within a rail to a single value ( with a possibly different type ) via a reducer function that is initialized on each rail from an initialSupplier value . <p > Note that the same mapper function may be called from multiple threads concurrently .