首页 > 编程语言 >Java响应式编程

Java响应式编程

时间:2024-05-15 21:21:24浏览次数:20  
标签:Java Reactive 编程 Programming 响应 Streams

提纲
1、响应式编程Reactive Programming
2、Reactive Streams
3、Reactor和RxJava



1、响应式编程Reactive Programming

为了解决异步编程中出现的各种问题,程序员们提出了各种的方法和手段去解决这些问题,这些方法和手段就被称为Reactive Programming。
Reactive Programming是一种编程思想,类似于面向对象,函数式编程,也就说采用响应式编程思想写程序,就是响应式编程。
响应式编程的本质就是对数据流或某种变化做出反应,但是这个变化什么时候被触发是未知的。
从响应式编程的本质来看,它是一种异步的数据处理方式,所以肯定是采用回调的方式在处理数据的变化。



2、响应式流Reactive Streams

当越来越多的程序员,开始使用响应式编程思想来编写处理数据流的程序时,就需要一些专家来统一一响应式编程思想,形成响应式编程的规范和标准。
在这样的背景下,国外的Netflix、Pivotal、Lightbend这3家公司联合起来启动了Reactive Steams项目。Reactive Streams项目是为以响应式编程思想编写异步流数据处理程序制定一套标准和规范。
因为响应式编程思想用来编写处理流数据stream的程序,所以这样的程序就叫响应式流Reactive Streams。
所以,Reactive Steams,翻译成中文就是反应式流或者响应式流,其实是一套标准和规范,目的是为使用响应式思想编写流数据处理程序提供一套规范和标准。



3、Reactor和RxJava

既然制定了针对响应流的标准,那么就要提供实现标准的软件产品。
基于Reactive Streams规范的实现很多,Java领域的第三方库Reactor和RxJava就是最著名实现了Reactive Streams规范的软件产品。
因此,Reactive Streams与RxJava和Reactor的关系,就类似于Java语言规范(Java language Specification)与JDK的关系一样,前者是标准和规范,后者是实现了前者的软件产品。

Reactor和RxJava是Java社区实现的Reactive Streams框架,而Java官方也在JDK9中引入了实现Reactive Streams规范的Flow类,它是由著名Java专家Doug Lee编写的。
Reactive Streams与其实现
border: 2px solid



4、异步编程、Reactive Programming和Java Stream三者的关系



标签:Java,Reactive,编程,Programming,响应,Streams
From: https://www.cnblogs.com/zhangzl419/p/18194712

相关文章

  • Java Solon v2.7.6 发布
    JavaSolon是什么框架?Java“新的”应用开发框架。开放原子开源基金会,孵化项目。从零开始构建(非java-ee架构),有灵活的接口规范与开放生态。追求:更快、更小、更简单提倡:克制、简洁、高效、开放、生态有什么特点?更高的计算性价比:并发高2~3倍;内存省50%更快的开发效......
  • Java-SSM-Day03 SpringFramework实战指南(二)
    4.2.2实验二:组件(Bean)依赖注入配置(DI)1.目标:通过配置文件,实现IoC容器中Bean之间的引用(依赖注入的DI配置)主要涉及注入场景:基于构造函数的依赖注入和基于Setter的依赖注入。3.基于构造函数的依赖注入(单个构造参数)基于构造函数的DI是通过容器调用具有多个参数的构......
  • 23.网络编程【一】
    【一】常见的网络结构模型1)CS模型1.概念C/S:Client/Server缩写,即客户端/服务器模式例如:APP2.优缺点优势:针对客户端可以高度定制减轻服务器的负载更加方便的管理数据库缺点:需要下载安装才能使用维护成本比较高2)BS模型1.概念B/S:Browser/Server的缩写,即......
  • javascript 将变量值作为对象属性 获取对象对应的值
      test(){letform={bar_rule_txt:'{spu}-{master_attr_value}-{slave_attr_alias}',bar_rule_result:'',spu:'JPK1575G',master_attr_value:'黑色',master......
  • drf之请求和响应
    drf之请求和响应一、drf之请求【1】源码分析#Request类的对象fromrest_framework.requestimportRequest#1新的request#2request.data前端传入的请求体中得数据,无论那种编码#3用起来跟之前一样#4老的request在request._request【2】配置视图类能处理的编......
  • JavaScript Object valueOf & toString All In One
    JavaScriptObjectvalueOf&toStringAllInOneclassArrayWrapper{arr:number[];constructor(nums:number[]){this.arr=nums;}//✅改写Object内置方法valueOf,返回一个number整数//❓object相加(本质上是object序列化后的string......
  • Java把List集合转成树形结构
     代码如下:privatestatic<T,K>List<T>listToTree(List<T>list,Predicate<T>isTop,Function<?superT,?extendsK>getId,Function<?superT,?extendsK>getParentId,BiConsumer<T,List<T>>setChilds){......
  • C---游戏开发的音频编程入门指南-全-
    C++游戏开发的音频编程入门指南(全)原文:zh.annas-archive.org/md5/DA6F8DEA921C8862289A88F7D7BB3BD8译者:飞龙协议:CCBY-NC-SA4.0前言音频在视频游戏中无疑是我们手头最强大的工具之一,它可以在许多不同的方面发挥作用,比如通过音效提供反馈、通过环境音轨增加沉浸感、通过录......
  • C---机器人编程实用指南-全-
    C++机器人编程实用指南(全)原文:zh.annas-archive.org/md5/E72C92D0A964D187E23464F49CAD88BE译者:飞龙协议:CCBY-NC-SA4.0前言C++是最受欢迎的传统编程语言之一,用于机器人技术,许多领先的行业都使用C++和机器人硬件的组合。本书将弥合树莓派和C/C++编程之间的差距,并使您能......
  • 用javax.ws.rs.client.Invocation queryParam 执行url中带参数的请求
    来自于百度AI,为了实际需要,改成我自己的环境。importlombok.AllArgsConstructor;importlombok.Data;importlombok.NoArgsConstructor;importorg.apache.commons.lang3.StringUtils;importorg.glassfish.jersey.client.ClientConfig;importorg.glassfish.jersey.client......