completable-future相关内容

为什么"parallelStream"比"CompletableFuture"实现要快?

我想通过某种操作来提高后端REST API的性能,该操作可以按顺序轮询多个不同的外部API,并收集它们的响应并将它们全部拼合为一个响应列表. 最近才了解CompletableFuture,因此决定尝试一下,并将该解决方案与只将stream更改为parallelStream的解决方案进行比较. 这是用于基准测试的代码: package com.alithya.platon; ..
发布时间:2020-09-20 18:46:16 Java开发

如何从completableFuture创建Mono

我正在尝试将CompletableFuture包装在Reactor Mono类型中,以简化转换操作.总的来说,Project Reactor更方便!我正在使用AWS Lambda函数,并且正在使用新的AWS Java SDK 2.x版本调用诸如S3,SQS等的AWS服务.这个新的SDK允许对AWS服务进行异步调用,并返回CompleteableFuture对象. 例如: S3Async ..

API请求(GET调用)是否可以将响应返回给客户端并启动后台任务以完成请求

我正在使用Spring Boot 1.4和Java8.我想知道是否有可能在控制器中收到对API的获取请求.我立即将响应返回给客户端,然后为请求创建后台任务(处理成功和异常情况).我知道我们可以使用completablefuture进行异步处理,但是仍然从该API的控制器方法中,我们通常在使用thenapply,exclusive或get之后发送响应.这意味着尽管我们产生了一个新线程.主线程仍然不是 ..
发布时间:2020-08-01 22:26:49 Java开发

CompletableFuture链接结果

我正在尝试将方法的调用/结果链接到下一个调用.我得到了编译时错误methodE,因为如果无法从上一次调用中获取objB的引用,则会收到该错误. 如何将上一个呼叫的结果传递给下一个链?我是否完全误解了此过程? Object objC = CompletableFuture.supplyAsync(() -> service.methodA(obj, width, height)) ..
发布时间:2020-08-01 21:58:58 Java开发

创建已经完成的CompletableFuture< Void>的正确方法是什么?

我正在Java 8中使用Completable future,并且我想编写一种方法,该方法基于接收到的参数并行运行具有副作用的多个任务,然后返回其“合并的" future(使用CompletableFuture.allOf()),或什么也不做,并返回一个已经完成的未来. 但是,allOf返回一个CompletableFuture: public static Complet ..
发布时间:2020-08-01 21:06:17 Java开发

CompletableFuture,可变对象和内存可见性

我试图了解Java 8中的CompletableFuture如何与 Java内存模型.在我看来,出于程序员的理智,以下理想情况下应该成立: 完成CompletableFuture 发生之前任何完成依赖阶段的线程中的动作被执行 注册完成的线程中的操作创建了一个依赖阶段 happen-before 执行了 completion 依赖阶段 java.util.concurrent中有一条注 ..

具有CompletableFuture的MDC记录器

我正在使用MDC Logger,除了一种情况外,它对我来说非常有用.无论代码在何处使用了CompletableFuture,对于已创建的线程,MDC数据都不会传递到下一个线程,并且由于日志失败而导致该错误.例如,在以下代码段中我用于创建新线程的代码中. CompletableFuture.runAsync(() -> getAcountDetails(user)); 以及以下日志的结果 ..
发布时间:2020-06-30 19:43:44 Java开发