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);
}
浙公网安备 33010602011771号