RxJava - Bộ lập lịch trình bạt lò xo
Phương thức Schedulers.trampoline () tạo và trả về một Scheduler xếp hàng đợi hoạt động trên luồng hiện tại sẽ được thực thi sau khi công việc hiện tại hoàn thành.
Ví dụ về Schedulers.trampoline ()
Tạo chương trình Java sau bằng bất kỳ trình soạn thảo nào bạn chọn trong 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;
}
}
Xác minh kết quả
Biên dịch lớp bằng cách sử dụng javac trình biên dịch như sau -
C:\RxJava>javac ObservableTester.java
Bây giờ hãy chạy ObservableTester như sau:
C:\RxJava>java ObservableTester
Nó sẽ tạo ra kết quả sau:
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