src/main/java/io/reactivex/parallel/ParallelFlowable.java
@CheckReturnValue
    @NonNull
    public final ParallelFlowable<T> runOn(@NonNull Scheduler scheduler, int prefetch) {
        ObjectHelper.requireNonNull(scheduler, "scheduler");
        ObjectHelper.verifyPositive(prefetch, "prefetch");
        return RxJavaPlugins.onAssembly(new ParallelRunOn<T>(this, scheduler, prefetch));
    }
@CheckReturnValue
    @NonNull
    public final ParallelFlowable<T> runOn(@NonNull Scheduler scheduler, int prefetch) {
        ObjectHelper.requireNonNull(scheduler, "scheduler");
        ObjectHelper.verifyPositive(prefetch, "prefetch");
        return RxJavaPlugins.onAssembly(new ParallelRunOn<T>(this, scheduler, prefetch));
    }
@ CheckReturnValue @ NonNull public final ParallelFlowable < T > runOn ( @ NonNull Scheduler scheduler , int prefetch ) { ObjectHelper . requireNonNull ( scheduler , "scheduler" ) ; ObjectHelper . verifyPositive ( prefetch , "prefetch" ) ; return RxJavaPlugins . onAssembly ( new ParallelRunOn < T > ( this , scheduler , prefetch ) ) ; }
Specifies where each 'rail' will observe its incoming values with
possibly work-stealing and a given 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
that rail's worker has run out of work.
@param prefetch the number of values to request on each 'rail' from the source
@return the new ParallelFlowable instance
Specifies where each rail will observe its incoming values with possibly work - stealing and a given 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 .