应该何时返回CompletableFuture?

时间:2018-04-25 16:00:31

标签: java asynchronous java-8 future completable-future

什么是方法何时返回CompletableFuture的一般指导原则?假设有两个类A和B,其中类B有一个方法performTask(),它执行大量的IO,而类A调用performTask()方法 在Java中,可以使用以下方法编写多线程代码:

  • 让方法的调用者决定是否使用ThreadPool异步执行方法。在这种情况下,A将异步调用performTask()方法,以便B类不需要使其方法异步。
  • 让方法performTask()返回一个Future或CompletableFuture,以便A类只调用performTask()。

推荐方法采用哪种方法的一般指导原则是什么?

1 个答案:

答案 0 :(得分:0)

简短回答

你决定。

稍微长一点的回答

取决于:

  • 当您知道呼叫者更愿意等待performTask()完成时,请将该方法设为同步。

  • 如果您知道调用者在调用performTask()之后会更多地想要继续执行某些操作,并且不关心结果,或者稍后再检查它,那么请使该方法异步。

  • 如果您不知道,请参阅简短的回答。