"Future.successful(None)"和"Future(None)"之间的区别是什么?

Ami*_*imi 32 scala future

Future.apply启动异步计算,同时Future.successful使用指定的结果创建已完成的Future.

现在Future(None)(Future.apply(None))效率低于Future.successful(None)

i.p*_*ruk 48

Future.apply(None)创建异步计算并执行它.这意味着创建了额外的lambda对象并安排了额外的任务(无论多么简单的任务).

Future.successful(None)只是产生已经完成的未来.它更有效率.

  • 您能否为Future.successful提供相同的真实示例?除了现有接口等待Future [T]并传递一些具有已知结果的Future外,我不明白为什么需要这样做? (2认同)
  • @FatihDonmez 这基本上是用例,是的。当您可以只包装已知值时,为什么要编写两个单独的接口? (2认同)