草庐IT

CompletableFuture

全部标签

java - 如何使用 CompletableFuture.thenComposeAsync()?

给定:publicclassTest{publicstaticvoidmain(String[]args){intnThreads=1;Executore=Executors.newFixedThreadPool(nThreads);CompletableFuture.runAsync(()->{System.out.println("Task1.Thread:"+Thread.currentThread().getId());},e).thenComposeAsync((Voidunused)->{returnCompletableFuture.runAsync(()->{Syste

java - 您如何访问传递给 CompletableFuture allOf 的已完成 future ?

我正在尝试掌握Java8CompletableFuture。我怎样才能将这些加入到人中并在“allOf”之后将它们归还。下面的代码不起作用,但可以让您了解我尝试过的内容。在javascriptES6中我会这样做Promise.all([p1,p2]).then(function(persons){console.log(persons[0]);//p1returnvalueconsole.log(persons[1]);//p2returnvalue});到目前为止我在Java方面的努力publicclassPerson{privatefinalStringname;publicPer

Flink UI部署jar包报错

错误描述:通过Flink的UI中的SubmitNewJob菜单添加jar包的时候提示报错。报错信息的关键字是“TheLocalStreamEnvironmentcannotbeusedwhensubmittingaprogramthroughaclient,orrunninginaTestEnvironmentcontext”,最关键的是“LocalStreamEnvironment”。我的Flink服务是单机版启动。问题原因就是以下这两行代码的区别,报错是因为我用的是“createLocalEnvironment()”ExecutionEnvironmentenv=ExecutionEnvi

java - 如何创建异步堆栈跟踪?

更新:最新版本的IntellijIDEAimplements正是我正在寻找的。问题是如何在IDE之外实现它(这样我就可以将异步堆栈跟踪转储到日志文件),理想情况下不使用检测代理。自从我将我的应用程序从同步模型转换为异步模型后,我在调试失败时遇到了问题。当我使用同步API时,我总是在异常堆栈跟踪中找到我的类,因此我知道如果出现问题从哪里开始查找。使用异步API,我得到的堆栈跟踪既不引用我的类,也不指示是什么请求触发了失败。我会给你一个具体的例子,但我对这类问题的通用解决方案很感兴趣。具体例子我使用Jersey发出HTTP请求:newClient().target("http://test

java - 如何将一种类型的 CompletableFuture 转换为另一种类型?

我目前正在转换我的CompletableFuture至CompletableFuture如下所示,但我想知道是否有更好的方法。@OverridepublicCompletableFuturepacketEncrypted(ByteBufferengineToSocketData){returnrealChannel.write(engineToSocketData).thenApply(c->empty());}publicVoidempty(){returnnull;} 最佳答案 您实际上是在尝试转换CompletableFutu

java - CompletableFuture 是否有 .thenCompose() 也异常执行?

我想在另一个CompletableFuture完成后执行一个CompletableFuture,无论第一个是否异常完成(.thenCompose()仅在执行正常完成时运行)。例如:CompletableFuture.supplyAsync(()->1L).whenComplete((v,e)->CompletableFuture.runAsync(()->{try{Thread.sleep(1000);System.out.println("HERE");}catch(InterruptedExceptionexc){return;}})).whenComplete((v,e)->Sy

java - Java 应用服务器中的 CompletableFuture/parallel Stream

鉴于新的Java8,我们获得了非常好的异步任务特性,例如CompletableFuture和.paralellStream()。如果您按照我的理解在JavaSE中运行它,您将使用ForkJoinPool,但是如果我在例如Wildfly还是TomcatEE?//HereIstartacomp.FuturewithoutgivinganExecutortest=CompletableFuture.supplyAsync(()->timeConsumingMethod());//HereIstartaparallelstreammList.paralell().filter(...).col

java - CompletableFuture 中的静态集合更新#runAsync

先决条件(一般描述):1.静态类字段staticListids=newArrayList();2.CompletableFuture#runAsync(Runnablerunnable,Executorexecutor)在内部调用staticvoidmain(Stringargs[])方法3.元素添加到someCollectionrunAsync内部从step2调用代码片段(具体描述):privatestaticListids=newArrayList();publicstaticvoidmain(String[]args)throwsExecutionException,Interr

java - Java8 中的 CompletableFuture

我有这段代码想重构为Java8Listmenus=newArrayList();for(Menumenu:resto1.getMenu()){MainIngredientmainIngredient=MainIngredient.getMainIngredient(menu.getName());if(mainIngredient.getIngredient().indexOf("Vegan")!=-1){menus.add(menu.getName());}}重构这个简单的循环后,代码似乎太多了……我是否正确使用了CompletableFutures?ExecutorServicee

java - "Double"与 CompletableFuture 的组合

我试图避免嵌套CompletableFuture当将2个独立的与BiFunction组合在一起时返回第三个。目前,使用thenCombine()不削减它://WhatIhavepublicCompletableFuture>doStuff(){CompletableFutureaFuture=makeSomeA();CompletableFuturebFuture=makeSomeB();CompletableFuture>cFuture=aFuture.thenCombine(bFuture,this::makeSomeC);returncFuture;}//WhatIwantpub