src/main/java/io/reactivex/parallel/ParallelFlowable.java
@CheckReturnValue
    @NonNull
    public final ParallelFlowable<T> runOn(@NonNull Scheduler scheduler) {
        return runOn(scheduler, Flowable.bufferSize());
    }
@CheckReturnValue
    @NonNull
    public final ParallelFlowable<T> runOn(@NonNull Scheduler scheduler) {
        return runOn(scheduler, Flowable.bufferSize());
    }
@ CheckReturnValue @ NonNull public final ParallelFlowable < T > runOn ( @ NonNull Scheduler scheduler ) { return runOn ( scheduler , Flowable . bufferSize ( ) ) ; }
Specifies where each 'rail' will observe its incoming values with
no work-stealing and default prefetch amount.
<p>
This operator uses the default prefetch size returned by {@code Flowable.bufferSize()}.
<p>
The operator will call {@code Scheduler.createWorker()} as many
times as this ParallelFlowable's parallelism level is.
<p>
No assumptions are made about the Scheduler's parallelism level,
if the Scheduler's parallelism level is lower than the ParallelFlowable's,
some rails may end up on the same thread/worker.
<p>
This operator doesn't require the Scheduler to be trampolining as it
does its own built-in trampolining logic.

@param scheduler the scheduler to use
@return the new ParallelFlowable instance
Specifies where each rail will observe its incoming values with no work - stealing and default prefetch amount . <p > This operator uses the default prefetch size returned by { @code Flowable . bufferSize () } . <p > The operator will call { @code Scheduler . createWorker () } as many times as this ParallelFlowable s parallelism level is . <p > No assumptions are made about the Scheduler s parallelism level if the Scheduler s parallelism level is lower than the ParallelFlowable s some rails may end up on the same thread / worker . <p > This operator doesn t require the Scheduler to be trampolining as it does its own built - in trampolining logic .