Rx java 如何在rx java中触发背压

Rx java 如何在rx java中触发背压,rx-java,Rx Java,rx java版本:2.1.1 public static void main(String[] args) { Integer[] ints = new Integer[100000]; Arrays.fill(ints, 1); Flowable.fromArray(ints).onBackpressureBuffer(1, () -> { System.out.println("Overflow"); }).subscribe(even

rx java版本:2.1.1

  public static void main(String[] args) {
    Integer[] ints = new Integer[100000];
    Arrays.fill(ints, 1);
    Flowable.fromArray(ints).onBackpressureBuffer(1, () -> {
      System.out.println("Overflow");
    }).subscribe(events -> {
      Thread.sleep(1000);
      System.out.println(events);
    });
  }

使用较慢的耗电元件和较小的缓冲区容量,不会触发溢出操作。为什么?

我想这是因为您只使用一个线程,如果没有明确指定,运算符通常应用当前线程。在订阅之前,尝试添加
observeOn
subscribeOn

。订阅(Schedulers.computation())
或任何其他调度程序都不起作用。使用
DefaultSubscriber
而不是
消费者订阅也不起作用。