Flow支持Reactive Streams in Java

Java 的 JVM Flow 就是按照 reactive-stream 的 API 规范写的,来看看Flow长的什么样?html

能够看到是在神奇 java.util.concurrent 包中,并且这是一个 Final 修饰的类。java

java.util.concurrent.Flow包含如下4个接口:react

* Flow.Processor(处理器)git

* Flow.Publisher(发布者)github

* Flow.Subscriber(订阅者)api

* Flow.Subscription(订阅管理器)并发

这些接口都支持响应式流发布-订阅框架。Java 9也提供了实用类SubmissionPublisher。一个发布者产生一个或多个物品,这些物品由一个或多个消费者消耗。而且订阅者由订阅管理器管理。订阅管理器链接发布者和订阅者。框架

让咱们来实现一下这个 Flow 玩玩:异步

日志输出:jvm

这里使用起来是否是有点 RxJava 的味道。

Flow类容许相互关联的接口和静态方法来创建流控制组件,其中发布者产生由一个或多个订阅者消费的项目,每一个订阅者由订阅管理。

Reactive Streams构建在java.util.concurrent.Flow容器对象下,开发者能够在这里找到Flow.Publisher,一个用做lambda表达式或方法引用的赋值目标功能接口。该接口能够让开发者更容易生成Flow.Subscription元素,而且将它们连接在一块儿。

另外一个元素Flow.Subscriber,是异步工做机制,由请求触发。它能够从Flow.Subscription请求多个元素,开发者还能够根据须要自定义缓冲区大小。

这些接口适用于并发和分布式异步设置,它们之间的通讯依赖于一种简单的流控制形式,可用于避免资源管理问题。

在一篇文章中,看到 Flow 有下面这个问题,智商有限

参考文档:

https://dzone.com/articles/java-9-flow-api-vs-lmax-disruptor https://github.com/reactive-streams/reactive-streams-jvm/ http://www.importnew.com/23155.html

相关文章
相关标签/搜索