让单独的 Thread() 完成 Future 有好处吗?

Is there a benefit of having a separate Thread() complete a Future?

我以为我理解了 Java8 介绍的 CompletableFuture 的目标。然后我读到:https://medium.com/swlh/completablefuture-a-simplified-guide-to-async-programming-41cecb162308

在本文中,开发人员在一个新线程中启动(或完成)一个 CompletableFuture,这与我无关。

有人可以解释一下,为什么有人会从单独的 Thread() 完成 CompletableFuture 中受益?

 CompletableFuture<Double> futureResult = new CompletableFuture<>();
new Thread( ()-> {
    try{
    //some long process
    futureResult.complete(10.0);
    }catch(Exception e){
    futureResult.completeExceptionally(e);
   }
    }).start();
return futureResult;

编辑: 正如评论中所指出的和接受的答案,不出所料,我的困惑源于我对 CompletableFuture 的误解。事后看来,似乎很明显,新的异步 activity 需要在某个地方启动,所以为什么不在新线程中启动,因为新的 activity 会阻塞?

Excellent,深入了解 CompletableFuture。

CompletableFuture 意味着它正在执行,所以当你提供一个时,你应该让它以某种方式启动。您的示例使用的 Thread 不能给您太多控制权。

如果您不在乎,您应该使用 CompletableFuture.completeAsync 来处理 executor/thread。

在提供的代码中,线程正在执行所有工作,然后 'completing' 未来。