Reactor 响应式编程简述 02
概述
有了 Reactive Streams 这种标准和规范,利用规范可以进行响应式编程。那再了解下什么是Reactive programming 响应式编程。响应式编程是基于异步和事件驱动的非阻塞程序,只是垂直通过在JVM内启动少量线程扩展,而不是水平通过集群扩展。这就是一个编程范例,具体项目中如何体现呢?
响应式项目编程实战中,通过基于 Reactive Streams 规范实现的框架 Reactor 一般是提供两种响应式API:
- Mono: 实现发布者,并返回 0 或 1 个元素
- Flux: 实现发布者,并返回 N 个元素
一、Reactor 的核心类
常用的主要有以下几个:
-
Mono
Mono 这个词本身有”单声道“ 的意思。
Mono 实现了 org.reactivestreams.Publisher 接口,所以是有着“发布者”的功能。代表 0 到 1 个元素的 发布者。 -
Flux
Flux 有“不断变化、波动”的意思。
Flux 同样实现了 org.reactivestreams.Publisher,所以也是有着“发布者”的功能 接口。Flux 代表 0 到 N 个元素的发布者。 -
Scheduler
代表背后驱动反应式流的调度器,通常由各种线程池实现。
二、函数编程接口说明
| 序号 | 接口函数名 | 说明 |
|---|---|---|
| 1 | BiConsumer | 表示接收两个输入参数和不返回结果的操作。 |
| 2 | BiFunction | 表示接受两个参数,并产生一个结果的函数。 |
| 3 | BinaryOperator | 表示在相同类型的两个操作数的操作,生产相同类型的操作数的结果。 |
| 4 | BiPredicate | 代表两个参数谓词(布尔值函数)。 |
| 5 | BooleanSupplier | 代表布尔值结果的提供者。 |
| 6 | Consumer | 表示接受一个输入参数和不返回结果的操作。 |
| 7 | DoubleBinaryOperator | 代表在两个double值操作数的运算,并产生一个double值结果。 |
| 8 | DoubleConsumer | 表示接受一个double值参数,不返回结果的操作。 |
| 9 | DoubleFunction | 表示接受double值参数,并产生一个结果的函数。 |
| 10 | DoublePredicate | 代表一个double值参数谓词(布尔值函数)。 |
| 11 | DoubleSupplier | 表示表示接受double值参数,并产生一个结果的函数。值结果的提供者。 |
| 12 | DoubleToIntFunction | 表示接受一个double值参数,不返回结果的操作。 |
| 13 | DoubleFunction | 表示接受double值参数,并产生一个结果的函数。 |
| 14 | DoublePredicate | 代表一个double值参数谓词(布尔值函数)。 |
| 15 | DoubleSupplier | DoubleToIntFunction |
| 16 | DoubleToIntFunction | 表示接受double值参数,并产生一个int值结果的函数。 |
| 17 | DoubleToLongFunction | 表示上产生一个double值结果的单个double值操作数的操作。 |
| 18 | Function | 代表接受一个double值参数,并产生一个long值结果的函数。 |
| 19 | DoubleUnaryOperator | 表示上产生一个double值结果的单个double值操作数的操作。 |
| 20 | Function | 表示接受一个参数,并产生一个结果的函数。 |
| 21 | IntConsumer | 表示接受单个int值的参数并没有返回结果的操作。 |
| 22 | IntFunction | 表示接受一个int值参数,并产生一个结果的函数。 |
| 23 | IntPredicate | 表示一个整数值参数谓词(布尔值函数)。 |
| 24 | IntSupplier | 代表整型值的结果的提供者。 |
| 25 | IntToLongFunction | 表示接受一个int值参数,并产生一个long值结果的函数。 |
| 26 | IntUnaryOperator | 表示产生一个int值结果的单个int值操作数的运算。 |
| 27 | LongBinaryOperator | 表示在两个long值操作数的操作,并产生一个ObjLongConsumer值结果。 |
| 28 |

最低0.47元/天 解锁文章
763

被折叠的 条评论
为什么被折叠?



