RxJava - Penjadwal Trampolin
Metode Schedulers.trampoline () membuat dan mengembalikan Penjadwal yang antriannya bekerja pada thread saat ini untuk dieksekusi setelah pekerjaan saat ini selesai.
Contoh Schedulers.trampoline ()
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.trampoline()))
.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
Ini harus menghasilkan keluaran berikut -
Processing Thread main
Receiver Thread main, Item length 1
Processing Thread main
Receiver Thread main, Item length 2
Processing Thread main
Receiver Thread main, Item length 3