src/main/java/io/reactivex/Flowable.java
@CheckReturnValue
    @BackpressureSupport(BackpressureKind.PASS_THROUGH)
    @SchedulerSupport(SchedulerSupport.NONE)
    public static <T, D> Flowable<T> using(Callable<? extends D> resourceSupplier,
            Function<? super D, ? extends Publisher<? extends T>> sourceSupplier, Consumer<? super D> resourceDisposer) {
        return using(resourceSupplier, sourceSupplier, resourceDisposer, true);
    }
@CheckReturnValue
    @BackpressureSupport(BackpressureKind.PASS_THROUGH)
    @SchedulerSupport(SchedulerSupport.NONE)
    public static <T, D> Flowable<T> using(Callable<? extends D> resourceSupplier,
            Function<? super D, ? extends Publisher<? extends T>> sourceSupplier, Consumer<? super D> resourceDisposer) {
        return using(resourceSupplier, sourceSupplier, resourceDisposer, true);
    }
Constructs a Publisher that creates a dependent resource object which is disposed of on cancellation.
<p>
<img width="640" height="400" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/using.png" alt="">
<dl>
<dt><b>Backpressure:</b></dt>
<dd>The operator is a pass-through for backpressure and otherwise depends on the
backpressure support of the Publisher returned by the {@code resourceFactory}.</dd>
<dt><b>Scheduler:</b></dt>
<dd>{@code using} does not operate by default on a particular {@link Scheduler}.</dd>
</dl>

@param <T> the element type of the generated Publisher
@param <D> the type of the resource associated with the output sequence
@param resourceSupplier
the factory function to create a resource object that depends on the Publisher
@param sourceSupplier
the factory function to create a Publisher
@param resourceDisposer
the function that will dispose of the resource
@return the Publisher whose lifetime controls the lifetime of the dependent resource object
@see <a href="http://reactivex.io/documentation/operators/using.html">ReactiveX operators documentation: Using</a>