• 响应式编程(Reactive Programming)是什么?


    简介

    在计算中,响应式编程(Reactive Programming)是一种面向数据流和变化传播的声明式编程范式。

    这意味着可以在编程语言中很方便地表达静态或动态的数据流,而相关的计算模型会自动将变化的值通过数据流进行传播。

    在响应式编程方式中,上一个任务执行结果的反馈就是一个事件,这个事件的到来将会触发下一个任务的执行。

    处理和发出事件的主体称为 Reactor,它可以接受事件并处理,也可以在处理完事件后,发出下一个事件给其他 Reactor。两个 Reactors 之间没有必然的强耦合,他们之间通过消息管道来传递消息。

    示例

    在命令式编程环境中, a = b + c a=b+c a=b+c表示将表达式的结果赋给a,而之后改变b或c的值不会影响a。但在响应式编程中,a的值会随着b或c的更新而更新。

    Excel就是响应式编程的一个例子。单元格可以包含字面值或类似"=B1+C1"的公式,而包含公式的单元格的值会依据其他单元格的值的变化而变化 。

    实现

    通常 Reactor 的数量可以是预先定义的,因为一个系统,我们通常可以约束它处理哪些预定义的事件,比如有处理网络连接的 Reactor,处理数据存储的 Reactor,处理日志收集的 Reactor 等等。

    而错误(未定义)事件则可以单独放在一个专门处理错误或异常的 Reactor 中。通过事件管理器,每个 Reactor 可以根据要发出或者接收的消息,即时地创建一个线程/协程去执行响应的操作。

    发出和接收消息可以根据业务的复杂度,分开单独线程,也可以放在一个线程。这样的设计架构简单而清晰。

    实现响应式编程最核心的是线程和消息管道。线程用于侦听事件,消息管道用于 Reactor 之间通信不同的消息。与他们相关的是事件管理器用于注册、注销事件,而消息分配器则会根据消息类型分发。

  • 相关阅读:
    springboot 项目生成docker镜像
    TRex学习之旅八
    打卡中国人民大学与加拿大女王大学金融硕士项目,读研梦想从这里起飞
    C++入门、STL学习、二级C++等
    【halcon】踩坑unin2
    Oracle常用对象精解(2)
    小白还不懂电脑图片转PDF格式怎么弄吗?这些方法你都试过吗?
    《持续交付:发布可靠软件的系统方法》- 读书笔记(六)
    【自然语言处理(NLP)】基于GRU实现情感分类
    day40 设计模式、jdk8新特性
  • 原文地址:https://blog.csdn.net/m0_46425143/article/details/127880603