src/main/java/io/reactivex/parallel/ParallelFlowable.java
@CheckReturnValue
    @NonNull
    public final Flowable<T> reduce(@NonNull BiFunction<T, T, T> reducer) {
        ObjectHelper.requireNonNull(reducer, "reducer");
        return RxJavaPlugins.onAssembly(new ParallelReduceFull<T>(this, reducer));
    }
@CheckReturnValue
    @NonNull
    public final Flowable<T> reduce(@NonNull BiFunction<T, T, T> reducer) {
        ObjectHelper.requireNonNull(reducer, "reducer");
        return RxJavaPlugins.onAssembly(new ParallelReduceFull<T>(this, reducer));
    }
Reduces all values within a 'rail' and across 'rails' with a reducer function into a single
sequential value.
<p>
Note that the same reducer function may be called from multiple threads concurrently.
@param reducer the function to reduce two values into one.
@return the new Flowable instance emitting the reduced value or empty if the ParallelFlowable was empty