JUC编程(九)-异步回调

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());
    }
}
posted @ 2021-12-10 01:41  酥炸小黄瓜  阅读(6)  评论(0)    收藏  举报