src/main/java/io/reactivex/Flowable.java
@SuppressWarnings({ "unchecked", "rawtypes" })
    @CheckReturnValue
    @BackpressureSupport(BackpressureKind.FULL)
    @SchedulerSupport(SchedulerSupport.NONE)
    public static <T> Flowable<T> concat(Publisher<? extends Publisher<? extends T>> sources, int prefetch) {
        return fromPublisher(sources).concatMap((Function)Functions.identity(), prefetch);
    }
@SuppressWarnings({ "unchecked", "rawtypes" })
    @CheckReturnValue
    @BackpressureSupport(BackpressureKind.FULL)
    @SchedulerSupport(SchedulerSupport.NONE)
    public static <T> Flowable<T> concat(Publisher<? extends Publisher<? extends T>> sources, int prefetch) {
        return fromPublisher(sources).concatMap((Function)Functions.identity(), prefetch);
    }
Returns a Flowable that emits the items emitted by each of the Publishers emitted by the source
Publisher, one after the other, without interleaving them.
<p>
<img width="640" height="380" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/concat.png" alt="">
<dl>
<dt><b>Backpressure:</b></dt>
<dd>The operator honors backpressure from downstream. Both the outer and inner {@code Publisher}
sources are expected to honor backpressure as well. If the outer violates this, a
{@code MissingBackpressureException} is signaled. If any of the inner {@code Publisher}s violates
this, it <em>may</em> throw an {@code IllegalStateException} when an inner {@code Publisher} completes.</dd>
<dt><b>Scheduler:</b></dt>
<dd>{@code concat} does not operate by default on a particular {@link Scheduler}.</dd>
</dl>

@param <T> the common element base type
@param sources
a Publisher that emits Publishers
@param prefetch
the number of Publishers to prefetch from the sources sequence.
@return a Flowable that emits items all of the items emitted by the Publishers emitted by
{@code Publishers}, one after the other, without interleaving them
@see <a href="http://reactivex.io/documentation/operators/concat.html">ReactiveX operators documentation: Concat</a>