購読対Rxjava2 blockingSubscribe

少し:

私はについての説明を読んでいるblockingSubscribe()と、subscribe()どちらも私は書くことも、これらの違いを見るために例を見つけることができます。これらの両方が同じように動作しているようです。誰かが好ましく、Javaで、これらの2の例を提供することができます。

Akrnokd:

blockingSubscribe現在のスレッドをブロックして、そこにincomnigイベントを処理します。あなたは、いくつかの非同期ソースを実行することで、これを見ることができます:

System.out.println("Before blockingSubscribe");
System.out.println("Before Thread: " + Thread.currentThread());

Observable.interval(1, TimeUnit.SECONDS)
.take(5)
.blockingSubscribe(t -> {
     System.out.println("Thread: " + Thread.currentThread());
     System.out.println("Value:  " + t);
});

System.out.println("After blockingSubscribe");
System.out.println("After Thread: " + Thread.currentThread());

subscribe そのような閉じ込めを与えないし、任意のスレッド上で実行することがあります。

System.out.println("Before subscribe");
System.out.println("Before Thread: " + Thread.currentThread());

Observable.timer(1, TimeUnit.SECONDS, Schedulers.io())
.concatWith(Observable.timer(1, TimeUnit.SECONDS, Schedulers.single()))
.subscribe(t -> {
     System.out.println("Thread: " + Thread.currentThread());
     System.out.println("Value:  " + t);
});


System.out.println("After subscribe");
System.out.println("After Thread: " + Thread.currentThread());

// RxJava uses daemon threads, without this, the app would quit immediately
Thread.sleep(3000);

System.out.println("Done");

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=200526&siteId=1