java异步01——初识reactor

本文介绍了Reactor,一个面向JVM的非阻塞响应式编程库,用于处理0到N个项目的异步序列。文章详细讲解了Flux和Mono的概念及其API,订阅机制,generate和create方法的使用,以及异常处理和Scheduler的选择。通过示例展示了如何在Java异步编程中运用Reactor。
摘要由CSDN通过智能技术生成

java异步01——初识reactor

reactor介绍

Reactor是一个面向JVM(这意味着支持kotlin或者其他语言)的非阻塞响应式编程,具有高效的demand管理(以管理“背压”的形式)。它直接与Java 8功能(lambda、stream)集成在一起,特别是CompletableFuture,Stream和Duration。

Flux

Flux 是标准的Publisher,它表示0到N个发射项目的异步序列。会发出:OnNext,OnError,onComplete三种信号。

Mono

只发送一项的Pubilisher,有一些运算符可以返回Flux。

使用一个空的Mono <Void>表示无值异步过程。

简单看一下Flux和Mono的api

flux

Flux<String> seq1 = Flux.just("foo", "bar", "foobar");//直接赋值创建flux
List<String> iterable = Arrays.asList("foo", "bar", "foobar");
Flux<String> seq2 = Flux.fromIterable(iterable);//利用迭代器创建一个flux
Flux<Integer> numbersFromFiveToSeven = Flux.range(5, 3); //从5到7的flux,第二个参数表示产生的个数

mono

Mono<String> noData = Mono.empty(); //创建一个空mono
Mono<String> data = Mono.just("foo");//创建一个mono

订阅

只有订阅发生了,流才会开始

订阅接口有:

subscribe(); 

subscribe(Consumer<? super T> consumer); 

subscribe(Consumer<? super T> consumer,
          Consumer<? super Throwable> errorConsumer); 

subscribe(Consumer<? super T> consumer,
          Consumer<? super Throwable> errorConsumer,
          Runnable completeConsumer); 

subscribe(Consumer<? super T> consumer,
          Consumer<? super Throwable> errorConsumer,
          Runnable completeConsumer,
          Consumer<? super Subscription> subscriptionConsumer); 

也可以通过继承抽象类BaseSubscriber<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值