我知道来自get()
的{{1}}方法会阻塞线程,但是如何在CompletableFuture
处理时实现System.out.println("xD")
的执行,因为此时此语句在{ {1}}已完成。
Future
答案 0 :(得分:4)
您应该在打印声明后立即移动get()
这样,将在评估future
的值时执行打印。
public static void main(String[] args) throws ExecutionException, InterruptedException {
CompletableFuture<Integer> future = CompletableFuture.supplyAsync(CompletableFutureTest::counting).whenComplete((result, exception) -> {
if (exception != null) {
System.out.println(result);
} else {
}
});
System.out.println("xD");
Integer value = future.get();
}