三言两语闲聊 Reactive Programming

读了这篇文章《Notes on Reactive Programming Part I: The Reactive Landscape》,写一点自己的感想。

首先,反应式编程这个概念有很多含义,可能指 React JS 代表的前端技术,可能指的是函数式编程。但是,这里要说的是 RxJava 这样技术代表的,基于异步编程和非阻塞 IO 技术的异步编程技术。

虽然 Java 多线程、非阻塞 IO 等技术已经发展了有超过10年的时间(从 Java 1.4 开始),但是现如今在 Java 时间广泛使用的还是同步式的编程模型。代码一行行地执行,虽然稳健,但是一些场景下却显得效率低下。在有很多 IO 调用的场景中,异步编程模型虽然可以充分发挥非阻塞 IO 的威力,但是代码编写起来很负责,对开发人员的技术要求非常高,不是普通开发人员可以完成的。

于是,近些年反应式编程的概念逐渐成熟,相关的模型和技术也涌现出不少。既有像 Netty 这样打造稳健高效的 IO 通信的技术,也有 Akka 这样基于 Actor 模型实现的异步框架。而随着 Java 8 的出现,Stream 编程的概念逐渐成熟。虽然 Java 8 中的 Stream 在异步方面还是显得很薄弱,但是却使 Stream 的概念逐渐普及(当然实际工作中用的还是很有限)。在 Java 9 中,Flow 的出现将使JDK 的并发编程模型和 Stream 模型更好地融合。

当然,开源社区的动作要更快一点,在反应式编程领域,Netflix 的 RxJava、Spring 的 Reactor 和 TypeSafe 的 Akka 可谓是三驾马车。这三个技术逐渐地将 Reactive Programming 这个镜花水月般的技术(当然更主要地是因为自己修道太浅,久久参不透其中的道理)从概念转变为切切实实的技术。在即将发布的 Spring 5 中,Reactor 也将作为核心的技术被引入。

所以,各位同行,是时候认真研究反应式编程技术,从而真正享受到异步编程和非阻塞 IO 所带来的“飞”一般的享受。

转载于:https://my.oschina.net/lifany/blog/731148

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值