java - 在后台进程运行时执行当前流程 - 单反应式编程
问题描述
我正在尝试运行 main 方法,其中 main 方法调用另一个方法(Bmethod),我需要在后台运行该方法,但我需要立即响应 main 方法,而无需等待 Bmethod 响应。我需要使用 java 反应代码(webflux)。
public static void main(String[] args) {
String abc= Mono.just(Bmethod()).block();
System.out.println("AAAAAAA");
}
public static String Bmethod() {
System.out.println("BBBBBBBB");
return "AACALL";
}
我想打印 AAAAAAA 然后只打印 BBBBBBBB 而不等待 Bmethod 响应。如何使用反应式单声道 Java 实现。
解决方案
您必须将呼叫切换Bmethod
到供应商并将block
呼叫移至末尾。
Mono<String> abcMono = Mono.fromSupplier(() -> Bmethod());
System.out.println("AAAAAAA");
String abc = abcMono.block();
注意:
- 调用
block
定义了你真正需要你的值的时刻Mono
,所以它不应该在开头。 - 与供应商解决方案相比,您的想法
just
强制 java 在将参数提供给函数之前计算参数,从而使包装无用
推荐阅读
- node.js - 如何使用 Asar 打包应用程序但不包括 Electron
- c# - C# UWP - OnNavigatedTo 触发方法两次
- r - 如何在 r 中制作交叉表
- javascript - 如何在没有用户交互的情况下自动单击第一个 Datatable 行?
- laravel - Laravel Mix 404 上的哈希不正确
- r - 如何从 R mongolite 包中查询 mongodb 集合字段名称
- android - 即使应用程序在前台,如何让 FCM 显示通知?
- arrays - swift中的struct线程安全吗
- websocket - 沃森 ASR python WebSocket
- kubernetes-ingress - 了解 GKE Kubernetes Ingress 自动生成的清单