ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

响应式编程 - 入门介绍

2022-06-09 19:38:47  阅读:168  来源: 互联网

标签:stats 入门 Flux Mono 编程 响应 CompletableFuture https Name


概念

与传统编程模型对比

传统编程模型,主要特点是同步阻塞式-Blocking; 而响应式编程(Reactive Programming) 主要特点是异步非阻塞 Non-Blocking。

同步阻塞式参考下面的图:
同步阻塞
同步阻塞的方式很好理解,也容易实现,在大部分时候都是不错的选择。但它的问题是当并发量高的时候,会有资源的浪费,遇到性能瓶颈。而我们也希望能够最大程度地利用硬件资源,利用多核CPU提高服务的一个吞吐量,所以有了异步非阻塞的编程模式。

响应式数据流异步非阻塞参考下图:

异步非阻塞
无论是查询数据库还是Web端过来的请求,都被看做一个一个的事件,而这些事件组成了一个事件流。对于这些事件,我们注册相关的订阅者去响应它,从而从编程的角度上实现异步。

这其中涉及到几个关键字:响应式数据流事件驱动发布订阅模式

Java异步非阻塞实现

Java提供了两种方式来实现异步编程:

  • Callback 使用回调,例如一个lambda或者一个匿名类作为参数,当异步执行有结果后进行调用
  • Future/CompletableFuture 立刻返回一个Future<T>对象。

但是这两种方式都有各自的缺陷。

标签:stats,入门,Flux,Mono,编程,响应,CompletableFuture,https,Name
来源: https://www.cnblogs.com/rachel-aoao/p/reactive_programming.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有