el *_*gli 15 java asynchronous java-8 completable-future
选择其中之一的理由是什么?阅读文档后我可以推断出的唯一区别是 runAsync 将 Runnable 作为输入参数,而 supplyAsync 将供应商作为输入参数。
这篇stackoverflow 帖子讨论了使用带有 supplyAsync 方法的供应商背后的动机,但它仍然没有回答何时选择一个而不是另一个。
Dea*_*ool 30
runAsync将 Runnable 作为输入参数并返回CompletableFuture<Void>,这意味着它不返回任何结果。
CompletableFuture<Void> run = CompletableFuture.runAsync(()-> System.out.println("hello"));
Run Code Online (Sandbox Code Playgroud)
但是suppyAsync将 Supplier 作为参数并返回CompletableFuture<U>with result 值,这意味着它不接受任何输入参数但它返回结果作为输出。
CompletableFuture<String> supply = CompletableFuture.supplyAsync(() -> {
System.out.println("Hello");
return "result";
});
System.out.println(supply.get()); //result
Run Code Online (Sandbox Code Playgroud)
结论:因此,如果您希望返回结果,请选择,supplyAsync或者如果您只想运行异步操作,请选择runAsync.
| 归档时间: |
|
| 查看次数: |
9064 次 |
| 最近记录: |