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