【问题标题】:Struggling with Java CompletionStage/CompletableFuture在 Java CompletionStage/CompletableFuture 中挣扎
【发布时间】:2020-11-27 20:56:50
【问题描述】:

查看文档和几个示例,我仍然有点困惑。我想我了解了它的基本知识,但我对何时使用它们感到困惑。

我猜我的主要问题..

  1. CompletionStage/CompletableFuture 是否都适用于异步代码?如果是这样,您为什么要使用一个而不是另一个?
  2. 如果 CompletionStage 可以用于非异步代码,为什么还要使用它呢?它与标准顺序代码有何不同?
  3. 它们有什么不同?我看到您可以为 CompletionStage 和 CompletableFuture 调用异步方法。
  4. 您会使用哪种方案而不是另一种方案?

【问题讨论】:

    标签: java asynchronous completable-future completion-stage


    【解决方案1】:

    CompletionStage 是一个interface,它(1)可以由任意数量的类实现,(2)不指定异步操作的线程分配等详细策略。

    CompletableFuture 是一个实现CompletionStage(和Future)的,并提供了有关这些策略的更多详细信息。

    【讨论】:

    • 是的,我大部分都明白这一点。但这并不能回答我的问题..主要是:如果 CompletionStage 可用于非异步代码,为什么还要使用它?它与标准顺序代码有何不同?
    • @Taylor 它让你不在乎
    • 以防您需要同步访问尚未准备好的变量。你还想到什么其他方法?
    • 代码本身不是同步或异步的。它可以是顺序的或并行的。是对并行代码结果的访问,可以是同步的也可以是异步的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-08
    • 2023-04-06
    • 2014-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多