【发布时间】:2017-05-23 18:56:40
【问题描述】:
我想知道使用 lambda 块与使用 thenApply() 的优势。
我知道 lambda 块总是由执行 supplyAsync() 中的函数的同一线程执行,而 thenApply() 块可以由执行 supplyAsync() 的线程或调用者线程执行。
我还想知道,如果 thenApply() 必须在 supplyAsync() 函数执行后才执行,为什么它会被调用者线程执行。
CompletableFuture.supplyAsync(() -> {return doSomethingAndReturnA();})
.thenApply(a -> convertToB(a));
CompletableFuture.supplyAsync(() -> {
A a = doSomethingAndReturnA();
convertToB(a);
});
【问题讨论】:
标签: java asynchronous java-8 completable-future