code: @CheckReturnValue
      @BackpressureSupport(BackpressureKind.PASS_THROUGH)
      @SchedulerSupport(SchedulerSupport.NONE)
      public static <T> Flowable<T> amb(Iterable<? extends Publisher<? extends T>> sources) {
          ObjectHelper.requireNonNull(sources, "sources is null");
          return RxJavaPlugins.onAssembly(new FlowableAmb<T>(null, sources));
      }
docs: Mirrors the one Publisher in an Iterable of several Publishers that first either emits an item or sends
  a termination notification.
  <p>
  <img width="640" height="385" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/amb.png" alt="">
  <dl>
  <dt><b>Backpressure:</b></dt>
  <dd>The operator itself doesn't interfere with backpressure which is determined by the winning
  {@code Publisher}'s backpressure behavior.</dd>
  <dt><b>Scheduler:</b></dt>
  <dd>{@code amb} does not operate by default on a particular {@link Scheduler}.</dd>
  </dl>
  
  @param <T> the common element type
  @param sources
  an Iterable of Publishers sources competing to react first. A subscription to each Publisher will
  occur in the same order as in this Iterable.
  @return a Flowable that emits the same sequence as whichever of the source Publishers first
  emitted an item or sent a termination notification
  @see <a href="http://reactivex.io/documentation/operators/amb.html">ReactiveX operators documentation: Amb</a>