supplyAsync対CompletableFuture runAsync、他の上のいずれかを選択するには?

ミゲル:

他の上のいずれかを選択する根拠は何ですか?私が読んだ後推測することができる唯一の違いドキュメントは runAsyncは、入力パラメータとしてのRunnableを取り、supplyAsyncは、入力パラメータとしてサプライヤーを取ることです。

この stackoverflowの投稿はsupplyAsync方法とサプライヤーを使用しての背後にある動機を説明したが、他の上で1つを好むときそれはまだ答えていません。

デッドプール :

runAsyncは、入力パラメータとリターンとしてのRunnableを取るCompletableFuture<Void>、それはどんな結果を返さないことを意味し、。

CompletableFuture<Void> run = CompletableFuture.runAsync(()-> System.out.println("hello"));

しかしsuppyAsyncは、引数としてサプライヤーを取り、返しCompletableFuture<U>、それは任意の入力パラメータを取ることはありませんが、それは出力として結果を返す意味結果値、と。

CompletableFuture<String> supply = CompletableFuture.supplyAsync(() -> {
        System.out.println("Hello");
        return "result";
    });

 System.out.println(supply.get());  //result

結論:あなたが望むのであれば、結果が返されるし、を選択しますsupplyAsyncか、あなただけの非同期アクションを実行したい場合は、その後、選択しましたrunAsync

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=4982&siteId=1