Java 9 中 Reactive Streams 的核心接口有哪些?

javaobject oriented programmingprogramming更新于 2025/8/31 1:16:17

Java 9 在 java.util.concurrent.Flow 包下引入了 Reactive Streams,支持可互操作的发布-订阅框架。它处理跨异步边界的异步数据流(将元素传递到另一个线程或线程池),并且接收方不必缓冲任意数量的数据,这样就不会发生缓冲区溢出。

Flow API包含四个相互关联的核心接口:Publisher、Subscriber、Subscription和Processor。

语法

@FunctionalInterfacepublic static interface Publisher<T> {
   public void subscribe(Subscriber<? super T>subscriber)
}
public static interface Subscriber<T> {
   public void onSubscribe(Subscription subscription);
   public void onNext(T item);
   public void onError(Throwable throwable);
   public void onComplete();
}
public static interface Subscription {
   public void request(long n);
   public void cancel();
}
public static interface Processor<T, R> extends Subscriber<T>, Publisher<R> {
}

这四个接口:Flow.Publisher、Flow.Processor、Flow.Subscriber 和  Flow.Subscription 与反应式流规范相关。 Publisher  接口具有 subscribe() 方法,Subscription  具有 cancel() 和 request() 方法,而 Subscriber  具有 onSubscribe()、onNext()、onError() 和 onComplete() 方法。Processor  接口实现了 Flow.Publisher 和 Flow.Subscriber 接口的所有方法。


相关文章


有用资源