src/main/java/io/reactivex/Observable.java
@SchedulerSupport(SchedulerSupport.NONE)
    public final void blockingSubscribe(Consumer<? super T> onNext, Consumer<? super Throwable> onError) {
        ObservableBlockingSubscribe.subscribe(this, onNext, onError, Functions.EMPTY_ACTION);
    }
@SchedulerSupport(SchedulerSupport.NONE)
    public final void blockingSubscribe(Consumer<? super T> onNext, Consumer<? super Throwable> onError) {
        ObservableBlockingSubscribe.subscribe(this, onNext, onError, Functions.EMPTY_ACTION);
    }
Subscribes to the source and calls the given callbacks <strong>on the current thread</strong>.
<p>
<img width="640" height="396" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/blockingSubscribe.o.2.png" alt="">
<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>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
@param onError the callback action for an error event
@since 2.0
@see #blockingSubscribe(Consumer, Consumer, Action)