RxJava - Penjadwal Benang Baru
Metode Schedulers.newThread () membuat dan mengembalikan Penjadwal yang membuat Thread baru untuk setiap unit kerja.
Schedulers.newThread () Contoh
Buat program Java berikut menggunakan editor pilihan Anda di, misalnya, C: \> RxJava.
ObservableTester.java
import java.util.Random;
import io.reactivex.Observable;
import io.reactivex.schedulers.Schedulers;
public class ObservableTester {
public static void main(String[] args) throws InterruptedException {
Observable.just("A", "AB", "ABC")
.flatMap(v -> getLengthWithDelay(v)
.doOnNext(s -> System.out.println("Processing Thread "
+ Thread.currentThread().getName()))
.subscribeOn(Schedulers.newThread()))
.subscribe(length -> System.out.println("Receiver Thread "
+ Thread.currentThread().getName()
+ ", Item length " + length));
Thread.sleep(10000);
}
protected static Observable<Integer> getLengthWithDelay(String v) {
Random random = new Random();
try {
Thread.sleep(random.nextInt(3) * 1000);
return Observable.just(v.length());
} catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}
}
Verifikasi Hasilnya
Kompilasi kelas menggunakan javac kompiler sebagai berikut -
C:\RxJava>javac ObservableTester.java
Sekarang jalankan ObservableTester sebagai berikut -
C:\RxJava>java ObservableTester
Itu harus menghasilkan keluaran berikut -
Processing Thread RxNewThreadScheduler-1
Receiver Thread RxNewThreadScheduler-1, Item length 1
Processing Thread RxNewThreadScheduler-2
Receiver Thread RxNewThreadScheduler-2, Item length 2
Processing Thread RxNewThreadScheduler-3
Receiver Thread RxNewThreadScheduler-3, Item length 3