src/main/java/io/reactivex/Observable.java
@SchedulerSupport(SchedulerSupport.NONE)
    public final void blockingSubscribe(Observer<? super T> observer) {
        ObservableBlockingSubscribe.subscribe(this, observer);
    }
@SchedulerSupport(SchedulerSupport.NONE)
    public final void blockingSubscribe(Observer<? super T> observer) {
        ObservableBlockingSubscribe.subscribe(this, observer);
    }
Subscribes to the source and calls the {@link Observer} methods <strong>on the current thread</strong>.
<p>
Note that calling this method will block the caller thread until the upstream terminates
normally, with an error or the {@code Observer} disposes the {@link Disposable} it receives via
{@link Observer#onSubscribe(Disposable)}.
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>
The a dispose() call is composed through.
@param observer the {@code Observer} instance to forward events and calls to in the current thread
@since 2.0