响应式编程 - reactor 初识

news/2025/11/10 17:58:05/文章来源:https://www.cnblogs.com/bigroc/p/19207799

Reactor 3 是一个围绕该规范构建的库,将响应式编程Reactive Streams范式引入JVM。
在本课程中,你将熟悉 Reactor API。那么,让我们快速介绍一下响应式流和响应式编程中更通用的概念。

package com.qinrenjihe;import org.jspecify.annotations.NonNull;
import reactor.core.publisher.Flux;public class Main {// 创建一个空的 Fluxstatic Flux<@NonNull String> emptyFlux() {return Flux.empty();}// 返回一个包含2个值“foo”和“bar”的Flux,而不使用数组或集合static Flux<@NonNull String> fooBarFluxFromValues() {return Flux.just("foo", "bar");}// fooBarFluxFromList 从包含两个值“foo”和“bar”的列表中创建一个Fluxstatic Flux<@NonNull String> fooBarFluxFromList() {return Flux.fromIterable(java.util.Arrays.asList("foo", "bar"));}// errorFlux 创建一个发出IllegalStateException的Fluxstatic Flux<@NonNull String> errorFlux() {return Flux.error(new IllegalStateException("Something went wrong"));}// 创建一个通量,每100ms发出从0到9的递增值static Flux<@NonNull Long> counter() {return Flux.interval(java.time.Duration.ofMillis(100)).take(10);}public static void main(String[] args) {// 1. 创建一个空的 FluxMain.emptyFlux().subscribe(System.out::println);// 2. 返回一个包含2个值“foo”和“bar”的Flux,而不使用数组或集合Main.fooBarFluxFromValues().subscribe(System.out::println);// 3. 从包含两个值“foo”和“bar”的列表中创建一个FluxMain.fooBarFluxFromList().subscribe(System.out::println);// 4. 创建一个发出 IllegalStateException 的 Flux// Main.errorFlux().subscribe(System.out::println,Throwable::printStackTrace);// 5. 创建一个通量,每100ms发出从0到9的递增值Long lastValue = Main.counter()//.doOnNext(System.out::println) // 在发出每个值时打印.doFinally(System.out::println) // 在完成时打印.blockLast(); // 等待完成System.out.println("Last value: " + lastValue);}
}

原文:https://tech.io/playgrounds/929/reactive-programming-with-reactor-3/Intro

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/961620.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu16.04安装CUDA驱动 - 小

背景:项目需要使用PyTorch ,调用这两个命令nvidia-smi nvcc --version安装cuda,先安装显卡驱动 检查显卡型号:lspci | grep -i nvidia 01:00.0 VGA compatible controller: NVIDIA Corporation GP106 [GeForce …

深入解析:统一高效图像生成与编辑!百度新加坡国立提出Query-Kontext,多项任务“反杀”专用模型

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年11月太阳能板生产厂家排名前十榜单:深圳精益太阳能板引领行业

摘要 随着全球对可再生能源需求的增长,太阳能板行业在2025年持续创新与扩张。本文基于权威市场数据和行业报告,精选出前十名太阳能板生产厂家,重点推荐深圳精益太阳能板作为榜首。榜单结合技术参数、用户口碑和品牌…

reactor 初识

package com.qinrenjihe;import org.jspecify.annotations.NonNull; import reactor.core.publisher.Flux;public class Main {// 创建一个空的 Fluxstatic Flux<@NonNull String> emptyFlux() {return Flux.emp…

QOJ6608 Descent of Dragons

为什么这题放在了 NOIP T2?自闭了……修改只会使值从 \(x\) 变成 \(x+1\),这个对整体的值域变化是非常小的。 对于一个阈值 \(lim\),考虑 \(01\) 序列 \(A_{lim}\),\(A_{lim,i}=[a_i\ge lim]\)。 对于一次修改,实…

2026年HR 数字化转型趋势:AI如何帮助HR从招聘到绩效全流程人效提升 48%?

根据艾瑞咨询 2025 年《中国 HR SaaS 行业研究报告》显示,预计 2025 年国内 HR SaaS 市场规模将突破 240 亿元,其中 AI 技术贡献的价值占比超 60%。这一数据背后,是 AI 正在彻底重塑 HR 全价值链 —— 从招聘的简历…

Windows利用批处理脚本判断端口, 启动tomcat

以下是一个完整的 Windows 批处理脚本,用于检查指定端口是否被占用,并根据结果选择是否启动 Tomcat。如果端口被占用,还可以选择结束占用端口的进程,再启动 Tomcat。批处理脚本代码batch@echo off :: 设置需要检查…

2025最新实测对比:5款热门工程项目管理系统 协同能力与实用体验深度测评

最近花了两个月时间,我们把市面上主流的5款工程项目管理系统都实际用了一遍。 说实话,这个测评做得挺烧脑的,光是测试数据就整理了十几个G。今天就把最真实的体验分享给大家,希望能帮正在选型的工程公司少走点弯路…

2025年双轴拌馅机实力厂家权威推荐榜单:调味料拌馅机/酱菜搅拌机/翻斗式拌馅机源头厂家精选

在食品工业自动化升级与标准化生产需求持续增长的背景下,双轴拌馅机作为肉制品、酱菜、调味品等食品加工的核心设备,其搅拌均匀性与生产效率直接影响产品品质与生产成本。根据食品机械行业数据显示,全球食品搅拌设备…

2025年终绩效,AI面谈系统让沟通效率翻倍,主管再也不用熬夜写总结

“又要准备绩效面谈了,光整理员工半年的绩效数据、目标完成情况就花了 2 天,面谈时还得边聊边记,生怕漏了关键信息,晚上还得熬夜补总结……” 这是很多企业主管在绩效周期内的真实写照。传统绩效面谈往往陷入 “形…

vue实现T型二维表格

图片实现T形2维表,上下滚动,T形左右可以各自水平滚动底部和顶部水平滚动保持一致实现excle复制粘贴T形左右宽度各自撑开代码如下<template><div class="fixed-table-container"ref="tableCo…

antd table 列表树形结构展示

// 原始数据(子节点字段为 subNodes) const rawData = [{key: 1,name: 父节点,subNodes: [{ key: 1-1, name: 子节点 },],}, ];// 转换函数:递归将 subNodes 改为 children const transformData = (data: any) =>…

2025年深圳救护车运转公司权威推荐榜单:正规救护车出租/急救车出租/出租救护车源头公司精选

在医疗服务需求多元化与人口老龄化趋势加速的背景下,深圳救护车运转服务市场正经历着从基础运输向专业化、分级化的转型升级。行业数据显示,社会对非急救转运服务的需求持续上升,尤其是在康复出院、跨省转院、异地就…

对隐式类型转换保持警觉

操作符重载引起的隐式类型转换 缺点:可能导致非预期的函数被调用 解决:以功能对等的另一个函数取代类型转换操作符 举例: class Rational{ public: Rational(int num = 0,int deno = 1):num_(num),deno_(deno){}; o…

es中批量删除数据

创建bulk_delete.json 文件 {"delete":{"_index":"vivian-scene-warn-history","_type":"warnHistory","_id":"5befb3a1b25c4841bca3637efc36a320&…

docker安装mysql/Redis/nacos/minio/es/xxl-job

yum安装jdk yum -y list java*yum install -y java-1.8.0-openjdk.x86_64#检查是否安装成功java -versiondocker安装mysql docker pull mysql:5.8 docker images mkdir -p /home/service/mysql/data mkdir -p /hom…

低代码高价值场景:让设备管理真正成为企业数字化资产

本文作者:得帆信息联合创始人&CIO刘鑫 制造业设备管理的痛点 在制造业的生产现场,设备是产能的根基。无论是冲压机、注塑机还是检测设备,一旦停机,生产节拍就被打乱,交付计划可能瞬间失控。设备的稳定运行不仅…

re-BABYRE-攻防世界

有关花指令和异或加密 第一步查壳可以看出是ELF文件,拖进IDA里面看一下,shift+F12查看字符串,双击“Please input flag:”或者“Right!"跳转到反汇编窗口进入mian函数并F5查看伪代码点击查看代码 int __fastca…

二维数组去重

二维数组去重def quchong(lst): # 使用了list传引用的特性.加速了计算.for d,i in enumerate(lst):for d1,i1 in enumerate(lst,start=d):if set(i)<set(i1):lst.pop(d)if set(i1)<set(i):lst.pop(d1)return lst…

Pinely Round 5 (Div. 1 + Div. 2) A-D细解

Pinely Round 5 (Div. 1 + Div. 2) A. Round Trip 【题目】 参加cf比赛,分两类div1 div2, div1对所有人rated, div2只对<X的rated。 你可以主动选择在rated的场次加分或者减分,如果当前场次能够rated,当前分为R…