completable-future相关内容

使用CompletableFuture抛出检查异常

Stackoverflow包含多个有关将检查的异常与CompletableFuture混合的问题. 以下是一些示例: 已检查带有CompletableFuture的异常 Java 8供应商异常处理 JDK8 CompletableFuture.supplyAsync如何处理interruptedException 虽然某些答案暗示使用CompletableFuture.com ..
发布时间:2020-06-26 23:34:51 Java开发

ForkJoinTask与CompletableFuture

在Java 8中,有两种启动异步计算的方式-CompletableFuture和ForkJoinTask.它们看起来都非常相似-CompletableFuture的内部类甚至扩展了ForkJoinTask. 是否有理由在一个之上使用另一个? 我可以看到的一个关键区别是CompletableFuture.join方法只是阻塞直到将来完成(waitingGet只是使用ManagedBloc ..
发布时间:2020-06-15 19:01:13 Java开发

java.util.concurrent.CompletableFuture中的异常传播

有两个代码段. 在第一个中,我们从任务中创建CompletableFuture,该任务总是会引发一些异常.然后,我们将“异常"方法应用于此未来,然后应用"theAccept"方法.我们不会将Accept方法返回的新的Future赋给任何变量.然后我们在原始将来调用"join".我们看到的是,已经调用了“异常"方法以及"thenAccept"方法.我们看到它是因为他们在输出中打印了适当的行.但 ..

'CompletionStage'和'CompletableFuture'有什么区别

我已经在每个示例中看到了一个示例,但是我需要确切地了解它们之间的区别,因为有时我想可以同时使用它们来获得相同的结果,所以我想知道选择正确的一个? 使用它们中的每一个有什么好处? 像这个例子一样,都可以工作: public CompletionStage getNextQueryUUID() { return CompletableFuture.supply ..
发布时间:2020-05-28 02:01:48 Java开发

在supplyAsync阻塞主线程之后使用thenAccept

我正在开发一个与其他Web应用程序通信的Web应用程序.我的系统有时会向其他系统发送HTTP请求作为通知.由于它们的响应对我来说不是必需的,因此我使用Java 8 CompletableFuture supplyAsync发送请求,并使用thenAccept打印它们的响应,这样我的主线程就不会被阻塞.但是,我发现CompletableFuture函数链每次大约花费100到200毫秒,这使我感到困惑 ..
发布时间:2020-05-14 00:41:41 其他开发

Java 8中的completableFuture是否可扩展到多个内核?

可以说我有一个线程,该线程调用一堆返回completablefuture的方法,并说我将所有方法都添加到列表中,最后我执行了completablefutures.allof(list_size).join().现在列表中的期货可以扩展到多个核心吗?换句话说,期货是否安排在多个核心中以利用并行性? 解决方案 CompletableFuture表示与某些 CompletableFuture.s ..
发布时间:2020-05-13 21:41:59 Java开发

CompletableFuture是否具有相应的Local上下文?

在过去,我们有ThreadLocal的程序可以将数据与请求路径一起传送,因为所有请求处理都是在该线程上完成的,诸如Logback之类的东西在MDC.put("requestId", getNewRequestId()); 中使用了此功能. 然后出现了Scala和函数式编程,接着出现了Future,随之而来的还有Local.scala(至少我知道twitter Future的twitter具有此 ..
发布时间:2020-05-03 07:19:29 其他开发

如何在可完成的将来测试异常?

我一直在将某些代码转换为异步代码.原始的单元测试使用了注释@Test(expected = MyExcpetion.class),但是我认为这不会起作用,因为我要声明的异常包装在java.util.concurrent.ExcutionException中.我确实尝试过这样称呼我的未来,但是我的断言仍然失败,我不喜欢必须在return null 中添加 myApiCall.get(123).e ..
发布时间:2020-04-25 05:22:59 Java开发

Spring将请求范围的Bean提升为子线程(HttpServletRequest)

我现在尝试了很多事情,但是我似乎错过了一个难题.这是一个故事:我有一个请求范围的Bean,它从HttpServletRequest读取一些SessionContext.此属性在过滤器中设置.因此,当代码在正确的线程上运行时,这绝对可以正常工作. @Component @Scope(value = WebApplicationContext.SCOPE_REQUEST, proxyMode = ..

并行流和CompletableFuture之间的差异

在“Java 8 in action”(Urma,Fusco和Mycroft)一书中,他们强调并行流在内部使用公共fork连接池,虽然这可以全局配置,例如:使用System.setProperty(...),它不可能为单个并行流指定一个值。 我已经看到解决方法在自定义的ForkJoinPool中运行并行流。 在本书的后面,他们有一整页专门讨论CompletableFuture,在此期间 ..

如何在不冒StackOverflowError风险的情况下使用CompletableFuture?

我想走一个异步函数的搜索空间。我将逻辑编码如下: / ** *假设函数将一系列输入映射到相同的输出值,最小化输入值,而 *保持输出值。 * * @param previousInput已知的最后一个输入返回{@code target} * @param currentInput新的输入值来评估 * @param函数将输入映射到输出值 * @param定位预期输出值 ..
发布时间:2019-01-14 12:20:56 Java开发

为什么在异常完成之前调用get()会等待异常执行?

在回答这个问题时,我注意到 CompletableFuture 的奇怪行为:如果你有一个 CompletableFuture cf 并用 cf.exceptionally(),调用 cf.get()似乎表现得很奇怪: 如果在特殊完成之前调用它,它会在返回 $ b之前等待执行 exceptionally()块$ b 否则,它会立即失败,抛出预期的 ExecutionException 我 ..
发布时间:2019-01-14 12:17:49 Java开发