src/main/java/io/reactivex/Flowable.java
@CheckReturnValue
    @BackpressureSupport(BackpressureKind.FULL)
    @SchedulerSupport(SchedulerSupport.NONE)
    public final <R> Flowable<R> publish(Function<? super Flowable<T>, ? extends Publisher<R>> selector) {
        return publish(selector, bufferSize());
    }
@CheckReturnValue
    @BackpressureSupport(BackpressureKind.FULL)
    @SchedulerSupport(SchedulerSupport.NONE)
    public final <R> Flowable<R> publish(Function<? super Flowable<T>, ? extends Publisher<R>> selector) {
        return publish(selector, bufferSize());
    }
Returns a Flowable that emits the results of invoking a specified selector on items emitted by a
{@link ConnectableFlowable} that shares a single subscription to the underlying sequence.
<p>
<img width="640" height="510" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/publishConnect.f.png" alt="">
<dl>
<dt><b>Backpressure:</b></dt>
<dd>The operator expects the source {@code Publisher} to honor backpressure and if this expectation is
violated, the operator will signal a {@code MissingBackpressureException} through the {@code Publisher}
provided to the function. Since the {@code Publisher} returned by the {@code selector} may be
independent of the provided {@code Publisher} to the function, the output's backpressure behavior
is determined by this returned {@code Publisher}.</dd>
<dt><b>Scheduler:</b></dt>
<dd>{@code publish} does not operate by default on a particular {@link Scheduler}.</dd>
</dl>

@param <R>
the type of items emitted by the resulting Publisher
@param selector
a function that can use the multicasted source sequence as many times as needed, without
causing multiple subscriptions to the source sequence. Subscribers to the given source will
receive all notifications of the source from the time of the subscription forward.
@return a Flowable that emits the results of invoking the selector on the items emitted by a {@link ConnectableFlowable} that shares a single subscription to the underlying sequence
@see <a href="http://reactivex.io/documentation/operators/publish.html">ReactiveX operators documentation: Publish</a>