在 Java 9 中执行 Flow API 的步骤是什么?

javaobject oriented programmingprogramming更新于 2025/10/13 6:36:17

Java 9 中的 Flow API 对应于 Reactive Streams  规范,这是一个事实上的标准。它包含一组最小的接口,可以捕获异步发布和订阅的核心。

以下是 Flow API 的关键接口:

1) Flow.Publisher:它生成项目供订阅者使用,并且它仅包含方法:subscribe(Subscriber),其目的显而易见。

语法

void subscribe(Flow.Subscriber<? super T>subscriber)

2) Flow.Subscriber:它订阅发布者(通常只有一个)以接收项目(通过方法 onNext(T)),错误消息(onError(Throwable))或表示不再需要任何项目的信号(onComplete())。在这些事情发生之前,发布者会调用 onSubscription(Subscription) 方法。

语法

void onSubscribe(Flow.Subscription subscription)
void onNext(T item)
void onError(Throwable throwable)
void onComplete()

3) Flow.Subscription:单个发布者和单个订阅者之间的连接。订阅者可以使用它来请求更多项目(request(long))或断开连接(cancel())。

语法

void request(long n)
void cancel()

Flow API 的执行步骤:

  • 首先,我们需要创建一个 Publisher  和一个 Subscriber。
  • 使用 Publisher:: subscribe 订阅订阅者。
  • publisher  创建一个 Subscription  并使用它调用 Subscriber::onSubscription,因此订阅者可以存储订阅。
  • 在某个时候,订阅者调用 Subscription:: request  来请求多个项目。
  • 发布者通过调用 Subscriber::onNext 开始将项目交给订阅者。它发布的项目数量绝不会超过请求的数量。
  • 发布者可能在某个时候遇到麻烦,并分别调用 Subscriber::onComplete  或 Subscriber::onError。
  • 订阅者可能会继续不时请求更多项目,或者通过调用 Subscription:: cancel 切断连接。

相关文章


有用资源