ラムダブロックを使用する利点を知りたい場合は、thenApply()
を使用します。Completablefuture - ラプダブロックを使用したthenapplyとの比較の利点
supplyAsync()
で関数を実行している同じスレッドがラムダブロックを常に実行するのに対して、thenApply()
ブロックはsupplyAsync()
を実行しているスレッドまたは呼び出し元スレッドで実行できることを理解します。
thenApply()
は、supplyAsync()
関数が実行された後に実行する必要がある場合、呼び出し元スレッドによって実行されるのはなぜですか?
CompletableFuture.supplyAsync(() -> {return doSomethingAndReturnA();})
.thenApply(a -> convertToB(a));
CompletableFuture.supplyAsync(() -> {
A a = doSomethingAndReturnA();
convertToB(a);
});