completable-future相关内容
我想通过某种操作来提高后端REST API的性能,该操作可以按顺序轮询多个不同的外部API,并收集它们的响应并将它们全部拼合为一个响应列表. 最近才了解CompletableFuture,因此决定尝试一下,并将该解决方案与只将stream更改为parallelStream的解决方案进行比较. 这是用于基准测试的代码: package com.alithya.platon;
..
我正在尝试将CompletableFuture包装在Reactor Mono类型中,以简化转换操作.总的来说,Project Reactor更方便!我正在使用AWS Lambda函数,并且正在使用新的AWS Java SDK 2.x版本调用诸如S3,SQS等的AWS服务.这个新的SDK允许对AWS服务进行异步调用,并返回CompleteableFuture对象. 例如: S3Async
..
我想触发许多一次性的异步CompletableFuture,例如: for (Job job : jobs) { CompletableFuture.supplyAsync(() -> job.process()) .whenComplete(this::doSomething); } 理想地,这些CompletableFuture可以在whenComplete完成之后被垃圾回收
..
我正在使用Spring Boot 1.4和Java8.我想知道是否有可能在控制器中收到对API的获取请求.我立即将响应返回给客户端,然后为请求创建后台任务(处理成功和异常情况).我知道我们可以使用completablefuture进行异步处理,但是仍然从该API的控制器方法中,我们通常在使用thenapply,exclusive或get之后发送响应.这意味着尽管我们产生了一个新线程.主线程仍然不是
..
我想知道是否存在用于通过同步方法调用创建CompletableFuture的单行代码.如果没有,为什么? 长版: final CompletableFuture future = new CompletableFuture(); final String parameters = "hello"; ReturnType result; try { r
..
如何使用5个CompletableFutures异步执行20个可运行任务(或1个任务20次)? 这就是我所拥有的: Runnable task = () -> { long startTime = System.currentTimeMillis(); Random random = new Random(); while (Syste
..
我现在有点困惑,所以我有一个方法应该返回CompletableFuture> 里面的方法是: CompletableFuture> toReturn = asyncCall().thenApply(....) .thenCompose(listOfStuff -> convertToList(listOfStuff.stream().map(
..
同事喜欢的Java 8编码风格是将异步调用一直链接到整个过程,例如 CompletionStage someMethod() { return doSomething().thenCompose(a -> { // ... return b; }).thenCompose(b -> { // ... return c;
..
给出这段代码: public List findPrices(String product){ List> priceFutures = shops.stream() .map(shop -> CompletableFuture.supplyAsync( ()
..
我正在尝试将方法的调用/结果链接到下一个调用.我得到了编译时错误methodE,因为如果无法从上一次调用中获取objB的引用,则会收到该错误. 如何将上一个呼叫的结果传递给下一个链?我是否完全误解了此过程? Object objC = CompletableFuture.supplyAsync(() -> service.methodA(obj, width, height))
..
此代码引自 Java 8 in Action ,也载于本书11.4.3. public Stream> findPricesStream(String product) { return shops.stream() .map(shop -> CompletableFuture.supplyAsync(()
..
如果我有 CompletableFuture future1 = service.request(param1); CompletableFuture future2 = service.request(param2); CompletableFuture many = CompletableFuture.allOf(future1,
..
为了允许对CompletableFuture>的结果流进行多次迭代,我正在考虑以下方法之一: 通过以下方式将结果转换为CompletableFuture>:teams.thenApply(st -> st.collect(toList())) 使用缓存:Flux.fromStream(teams::join).cache();
..
我正在Java 8中使用Completable future,并且我想编写一种方法,该方法基于接收到的参数并行运行具有副作用的多个任务,然后返回其“合并的" future(使用CompletableFuture.allOf()),或什么也不做,并返回一个已经完成的未来. 但是,allOf返回一个CompletableFuture: public static Complet
..
CompletableFuture.get()和CompletableFuture.join()有什么区别? 下面是我的代码: List process() { List messages = Arrays.asList("Msg1", "Msg2", "Msg3", "Msg4", "Msg5", "Msg6", "Msg7", "Msg8"
..
使用 Spring异步和仅返回CompletableFuture靠你自己? 解决方案 您的应用程序由容器管理.由于不建议自己生成Thread,因此可以让容器注入托管的Executor. @Service class MyService { @Autowired private Executor executor; public CompletableFuture
..
我对此代码有疑问: @Async public CompletableFuture doFoo() { CompletableFuture fooFuture = new CompletableFuture(); try { String fooResult = longOp(); fooFuture.
..
我解决了一个非常具体的问题,该问题的解决方案似乎是基本的: 我(Spring)应用程序的类加载器层次结构是这样的:SystemClassLoader -> PlatformClassLoader -> AppClassLoader 如果我使用Java CompleteableFuture运行线程.线程的ContextClassLoader是:SystemClassLoader -> P
..
我试图了解Java 8中的CompletableFuture如何与 Java内存模型.在我看来,出于程序员的理智,以下理想情况下应该成立: 完成CompletableFuture 发生之前任何完成依赖阶段的线程中的动作被执行 注册完成的线程中的操作创建了一个依赖阶段 happen-before 执行了 completion 依赖阶段 java.util.concurrent中有一条注
..
我正在使用MDC Logger,除了一种情况外,它对我来说非常有用.无论代码在何处使用了CompletableFuture,对于已创建的线程,MDC数据都不会传递到下一个线程,并且由于日志失败而导致该错误.例如,在以下代码段中我用于创建新线程的代码中. CompletableFuture.runAsync(() -> getAcountDetails(user)); 以及以下日志的结果
..