JUC练习14——异步回调

一,什么是异步回调?

例如:A在做某个工作,突然碰到一个问题了,A把这个问题交给B去完成,A就可以继续完成工作,等到B完成工作后会通知A,工作的结果。

例如:你在打开某个程序时,使用某些功能可能会因为加载内容而等待很久,此时你可以新开一个窗口,做其它的请求。

二,java中使用异步回调案例

public static void main(String[] args) throws ExecutionException, InterruptedException {
        CompletableFuture<String> completableFuture = CompletableFuture.supplyAsync(() -> {
            try {
                TimeUnit.SECONDS.sleep(2);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(Thread.currentThread().getName()+"异步回调执行");
            return "Success";
        });
        System.out.println("主线程继续执行");
        System.out.println("异步回调成功的的值:"+completableFuture.get());
        String result = completableFuture.whenComplete((t, u) ->
        {
            System.out.println("t->" + t);
            System.out.println("u->" + u);
        }).exceptionally((e) ->
        {
            System.out.println(e.getMessage());
            return "error";
        }).get();
        System.out.println(result);

    }

  

上一篇:CompletableFuture详解~applyToEither


下一篇:递归去除线性表(链表)元素