src/main/java/io/reactivex/Flowable.java
@BackpressureSupport(BackpressureKind.UNBOUNDED_IN)
    @SchedulerSupport(SchedulerSupport.NONE)
    public final void blockingSubscribe(Consumer<? super T> onNext) {
        FlowableBlockingSubscribe.subscribe(this, onNext, Functions.ON_ERROR_MISSING, Functions.EMPTY_ACTION);
    }
@BackpressureSupport(BackpressureKind.UNBOUNDED_IN)
    @SchedulerSupport(SchedulerSupport.NONE)
    public final void blockingSubscribe(Consumer<? super T> onNext) {
        FlowableBlockingSubscribe.subscribe(this, onNext, Functions.ON_ERROR_MISSING, Functions.EMPTY_ACTION);
    }
Subscribes to the source and calls the given callbacks <strong>on the current thread</strong>.
<p>
If the Flowable emits an error, it is wrapped into an
{@link io.reactivex.exceptions.OnErrorNotImplementedException OnErrorNotImplementedException}
and routed to the RxJavaPlugins.onError handler.
Using the overloads {@link #blockingSubscribe(Consumer, Consumer)}
or {@link #blockingSubscribe(Consumer, Consumer, Action)} instead is recommended.
<p>
Note that calling this method will block the caller thread until the upstream terminates
normally or with an error. Therefore, calling this method from special threads such as the
Android Main Thread or the Swing Event Dispatch Thread is not recommended.
<dl>
<dt><b>Backpressure:</b></dt>
<dd>The operator consumes the source {@code Flowable} in an unbounded manner
(i.e., no backpressure applied to it).</dd>
<dt><b>Scheduler:</b></dt>
<dd>{@code blockingSubscribe} does not operate by default on a particular {@link Scheduler}.</dd>
</dl>
@param onNext the callback action for each source value
@since 2.0
@see #blockingSubscribe(Consumer, Consumer)
@see #blockingSubscribe(Consumer, Consumer, Action)