草庐IT

java - 有没有一种简单的方法可以将 Future<Future<T>> 变成 Future<T>?

我有一些代码可以将请求提交给另一个线程,该线程可能会也可能不会将该请求提交给另一个线程。这会产生Future>的返回类型.是否有一些非令人发指的方法可以立即将其变成Future等待整个future链的完成?我已经在使用Guava库来处理其他有趣的并发内容,并作为GoogleCollections的替代品,它运行良好,但我似乎找不到适合这种情况的东西。 最佳答案 使用Guava库的另一种可能的实现方式要简单得多。importjava.util.concurrent.*;importcom.google.common.util.conc

java - 可完成的 future : Waiting for first one normally return?

我有一些CompletableFuture,我想并行运行它们,等待第一个正常返回。我知道我可以使用CompletableFuture.anyOf等待第一个返回,但这将返回正常或异常。我想忽略异常。List>futures=names.stream().map((Stringname)->CompletableFuture.supplyAsync(()->//thiscallingmaythrowexceptions.newTask(name).run())).collect(Collectors.toList());//FIXMECannotignoreexceptionallyret

java - 可完成的 future : Waiting for first one normally return?

我有一些CompletableFuture,我想并行运行它们,等待第一个正常返回。我知道我可以使用CompletableFuture.anyOf等待第一个返回,但这将返回正常或异常。我想忽略异常。List>futures=names.stream().map((Stringname)->CompletableFuture.supplyAsync(()->//thiscallingmaythrowexceptions.newTask(name).run())).collect(Collectors.toList());//FIXMECannotignoreexceptionallyret

java - 如何检查 ExecutorService 上运行的所有任务是否已完成

我有用于同步推送/弹出元素的ConcurrentLinkedDeque,我有一些异步任务正在从堆栈中获取一个元素,如果这个元素有邻居,它将把它推到堆栈中。示例代码:privateConcurrentLinkedDequestack=newConcurrentLinkedDeque();privateExecutorServiceexec=Executors.newFixedThreadPool(5);while((item=stack.pollFirst())!=null){if(item==null){}else{Runnableworker=newSolider(this,item

java - 如何检查 ExecutorService 上运行的所有任务是否已完成

我有用于同步推送/弹出元素的ConcurrentLinkedDeque,我有一些异步任务正在从堆栈中获取一个元素,如果这个元素有邻居,它将把它推到堆栈中。示例代码:privateConcurrentLinkedDequestack=newConcurrentLinkedDeque();privateExecutorServiceexec=Executors.newFixedThreadPool(5);while((item=stack.pollFirst())!=null){if(item==null){}else{Runnableworker=newSolider(this,item

java - Akka Actor 和 future : Understanding by example

我正在尝试学习AkkaActor和future,但在阅读了http://akka.io上的文档之后做http://doc.akka.io/docs/akka/2.0.2/intro/getting-started-first-java.html我仍然有一些理解问题。我猜计算Pi的值很多人也可以联系起来,但不是我=)。我搜索了一下但还没有找到任何适合我的例子。因此,我想我会拿一些我的真实代码并把它扔在这里,并用它来交换一个如何用Akka做到这一点的例子。好的,我们开始吧:我有一个javaplay2应用程序,我需要从我的数据库中获取一些数据并将其索引到我的elasticsearch实例中。

java - Akka Actor 和 future : Understanding by example

我正在尝试学习AkkaActor和future,但在阅读了http://akka.io上的文档之后做http://doc.akka.io/docs/akka/2.0.2/intro/getting-started-first-java.html我仍然有一些理解问题。我猜计算Pi的值很多人也可以联系起来,但不是我=)。我搜索了一下但还没有找到任何适合我的例子。因此,我想我会拿一些我的真实代码并把它扔在这里,并用它来交换一个如何用Akka做到这一点的例子。好的,我们开始吧:我有一个javaplay2应用程序,我需要从我的数据库中获取一些数据并将其索引到我的elasticsearch实例中。

java - 为什么 Java Future.get(timeout) 不可靠?

Future.get(timeout)在给定超时后不会可靠地抛出TimeoutException。这是正常行为还是我可以做些什么来使它更可靠?这个测试在我的机器上失败了。但是,如果我睡3000而不是2000,它就会过去。publicclassFutureTimeoutTest{@Testpublicvoidtest()throwsExecutionException,InterruptedException{ExecutorServiceexec=Executors.newSingleThreadExecutor();finalCallablecall=newCallable(){@O

java - 为什么 Java Future.get(timeout) 不可靠?

Future.get(timeout)在给定超时后不会可靠地抛出TimeoutException。这是正常行为还是我可以做些什么来使它更可靠?这个测试在我的机器上失败了。但是,如果我睡3000而不是2000,它就会过去。publicclassFutureTimeoutTest{@Testpublicvoidtest()throwsExecutionException,InterruptedException{ExecutorServiceexec=Executors.newSingleThreadExecutor();finalCallablecall=newCallable(){@O

java - ExecutorService.submit(Task) vs CompletableFuture.supplyAsync(Task, Executor)

要并行或异步运行一些东西,我可以使用ExecutorService:Futuresubmit(Runnabletask,Tresult);或CompletableFutureAPI:staticCompletableFuturesupplyAsync(Suppliersupplier,Executorexecutor);(假设我在这两种情况下都使用同一个Executor)除了返回类型Future与CompletableFuture有什么显着差异。或者什么时候用什么?如果我使用CompletableFuture有什么区别?默认APIExecutor(没有执行者的方法)?