java响应式编程_[译]使用JDK 9 Flow API进行响应式编程

本文介绍了响应式编程的概念及其优势,包括异步数据流处理和简洁的代码。重点讲解了JDK 9中的Flow API,它是Reactive Streams Specification的事实标准。文章通过Subscriber、Publisher和Subscription等接口的示例,展示了如何使用Flow API进行响应式编程,同时也提到了处理器Processor的角色。此外,还讨论了背压问题以及响应式编程在实际应用中的挑战。
摘要由CSDN通过智能技术生成

什么是响应式编程?

响应式编程是关于处理数据项的异步流,也就是应用程序在数据项发生时对其进行响应。 数据流实质上是指随时间发生的数据项序列。与迭代内存数据相比, 这个模型的内存效率更高,因为数据是以流的形式处理的。

在响应式编程模型中,有一个Publisher和一个Subscriber。 Publisher发布一个数据流,Subscriber异步订阅。

该模型还提供了一种机制来引入更高阶的函数,这样就可以使用Processor在流上操作。 Processor转换数据流不需要更改Publisher或Subscriber。 Processor(或一连串的Processor)位于Publisher和Subcriber之间来将一个数据流转换为另一个。 Publisher和Subcriber独立于发生在数据流中的转换。

1511578454375_cGrxP.png

为什么要响应式编程?更简洁的代码,使其更具可读性。

从模板代码中抽离出来,专注于业务逻辑。

从底层的线程,同步和并发问题中抽离出来。

流处理意味着高效的内存

该模型几乎可以应用于任何类型的问题。

JDK 9 Flow API

JDK 9中的Flow API与Reactive Streams Specification相对应,这是一个事实上的标准。 Reactive Streams Specification是标准化响应式编程的举措之一。 已经有几个实现支持Reactive Streams Specification。

Flow API(和Reactive Streams API)在某些方面是迭代器模式和观察者模式的组合。 迭代器模式是一个拉式(pull)的模型,应用程序从数据源拉取项目。 观察者模式是一个推送(push)模型,数据源的项目被推送到应用程序。 使用Flow API,应用程序最初请求(拉)N个项目,然后发布者将最多N个项目推送给订阅者。 所以说它是拉和推编程模型的混合。

1511579177939_y2TcM.png

过一遍Flow API 接口@FunctionalInterface

public static interface Flow.Publisher {

public void  subscribe(Flow.Subscr

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值