当前位置: 首页 > 知识库问答 >
问题:

方法何时应返回CompletableFuture?

家志学
2023-03-14

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

    < li >让方法的调用方决定是否使用ThreadPool异步执行方法。在这种情况下,A将异步调用performTask()方法,这样类B就不需要使其方法异步。 < li >让performTask()方法返回Future或CompletableFuture,这样类A只需调用performTask()。

关于哪种方法的建议方法的一般准则是什么?

共有1个答案

蒙华翰
2023-03-14

简短的回答

你决定吧。

稍微长一点的答案

这取决于:

>

  • 当您知道调用方经常想要等待 performTask() 完成时,使方法同步

    当您知道调用方在调用< code>performTask()后通常会想立即继续做一些事情,或者不关心结果,或者稍后再检查结果时,请使该方法异步。

    当您不知道时,请参阅简短的答案。

  •  类似资料:
    • 问题内容: 当用Java编程时,我几乎总是出于习惯,编写如下代码: 大多数时候甚至都没有考虑它。现在,问题是:我应该 始终 将接口指定为返回类型吗?还是建议使用接口的实际实现,如果是,在什么情况下使用? 显然,使用该接口有很多优点(这就是为什么它存在的原因)。在大多数情况下,库函数使用哪种具体实现并不重要。但也许在某些情况下确实很重要。例如,如果我知道我将主要随机访问列表中的数据,那将是一个坏习惯

    • 问题内容: 我的一个朋友以这种奇怪的行为来到我这里,我无法解释,任何见解的观点都将不胜感激。 我正在运行VS 2005(C#2.0),以下代码显示了该行为 上面的代码,打印“ 0”,清楚地表明它应该有返回-1 这在Java中也会发生,其中以下类显示了该行为: 我正在运行Java 1.6.0_17 问题答案: 这不是规则的例外,而是方法和定义的自然结果。 您声称应该返回。这基本上等于应返回的索赔。为

    • 我被要求写一个student.compareTo方法,如果两个学生的名字和两个学生的姓氏相同,则该方法应返回0。如果学生的名字按字典顺序排序低于传入的名字,则应返回负值。如果学生的名字按字典顺序排序高于传入的名字,则应返回正值。 这是我到目前为止的代码。对于负值和正值,它应该是固定值还是我应该使用compareTo值? 这是另一个代码。我想知道我是否做对了

    • 问题内容: 我有一类这样的方法: 我如何在另一个类中调用此方法? 问题答案: 1. 如果要从中调用该方法的类位于同一包中,则创建该类的实例并调用该方法。 2. 使用 3. 最好有个赞等等。 例如:

    • 我在一节课上做了这个方法。我已经仔细检查过了,应该可以正常工作了。当我使用这个方法在main方法中运行一个对象时,我总是得到一个假返回,即使它应该是真的。 print语句不打印,所以我无法检查值是否正确传递,我还尝试让if语句也返回true,但它仍然返回false!它让我头疼,因为一切在逻辑上都是正确的。 有没有一个我不知道的规则,如果出现错误,布尔方法会自动返回false? 在主要方法中:

    • 问题内容: 我正在使用该程序包从数据库查询文本列。该数据库基于Microsoft SQL Server 2008 R2构建。SQL中列的数据类型为。 但是,当我运行时: 在SQL中,我期望(对于第一行): 但是,当我这样做时: 它返回: 255 。 所以我的问题是,是什么导致了这种截断,我该如何避免呢?谢谢!! 问题答案: 好的,看来我已经找到了解决方法。经过更多Google搜寻后,我发现: SQ