src/main/java/io/reactivex/Flowable.java
@BackpressureSupport(BackpressureKind.FULL)
    @SchedulerSupport(SchedulerSupport.NONE)
    @CheckReturnValue
    public final ParallelFlowable<T> parallel() {
        return ParallelFlowable.from(this);
    }
@BackpressureSupport(BackpressureKind.FULL)
    @SchedulerSupport(SchedulerSupport.NONE)
    @CheckReturnValue
    public final ParallelFlowable<T> parallel() {
        return ParallelFlowable.from(this);
    }
Parallelizes the flow by creating multiple 'rails' (equal to the number of CPUs)
and dispatches the upstream items to them in a round-robin fashion.
<p>
Note that the rails don't execute in parallel on their own and one needs to
apply {@link ParallelFlowable#runOn(Scheduler)} to specify the Scheduler where
each rail will execute.
<p>
To merge the parallel 'rails' back into a single sequence, use {@link ParallelFlowable#sequential()}.
<p>
<img width="640" height="547" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/flowable.parallel.png" alt="">
<dl>
<dt><b>Backpressure:</b></dt>
<dd>The operator requires the upstream to honor backpressure and each 'rail' honors backpressure
as well.</dd>
<dt><b>Scheduler:</b></dt>
<dd>{@code parallel} does not operate by default on a particular {@link Scheduler}.</dd>
</dl>
<p>History: 2.0.5 - experimental; 2.1 - beta
@return the new ParallelFlowable instance
@since 2.2