code: @CheckReturnValue
      @BackpressureSupport(BackpressureKind.FULL)
      @SchedulerSupport(SchedulerSupport.NONE)
      public final <R> Flowable<R> publish(Function<? super Flowable<T>, ? extends Publisher<? extends R>> selector, int prefetch) {
          ObjectHelper.requireNonNull(selector, "selector is null");
          ObjectHelper.verifyPositive(prefetch, "prefetch");
          return RxJavaPlugins.onAssembly(new FlowablePublishMulticast<T, R>(this, selector, prefetch, false));
      }
docs: 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.
  @param prefetch
  the number of elements to prefetch from the current Flowable
  @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>