Java 9中的Reactive Streams的核心接口是什么?

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

Flow API包含四个相互关联的核心接口:PublisherSubscriberSubscriptionProcessor

语法

@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。与响应流规范相关的订阅。 

Publisher接口具有subscription()方法,Subscription具有cancel()和request()方法,而Subscriber具有onSubscribe(),onNext(),onError()和onComplete()方法。

Processor接口实现了所有的Flow方法。 发布者和Flow.Subscriber接口。