public class FutureTest {
public static void main(String[] args) throws ExecutionException, InterruptedException {
CompletableFuture<Void> completableFuture = CompletableFuture.runAsync(()->{
//没有返回值
try {
TimeUnit.SECONDS.sleep(2);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName());
});
System.out.println("mian");
completableFuture.get();
CompletableFuture<Integer> completableFuture1 = CompletableFuture.supplyAsync(()->{
//有返回值
System.out.println(Thread.currentThread().getName());
return 123;
});
System.out.println(completableFuture1.whenComplete((t, u) -> {
System.out.println("t=>" + t);
//执行结果
System.out.println("u=>" + u);
//异常,没有返回null
}).exceptionally((e) -> {
//捕获执行过程中的异常
e.printStackTrace();
return 456;
}).get());
}
}