温州市建设小学大南网站,苏州注册公司需要多少钱,后缀是.cc的网站,申请个人网站怎么申请演示Completable接口完全可以代替Future接口#xff1a; CompletableFuture减少阻塞和轮询#xff0c;可以传入回调对象#xff0c;当异步任务完成或者发生异常时#xff0c;自动
调用回调对象的回调方法。
package com.nanjing.gulimall.zhouyimo.test;import java.util…演示Completable接口完全可以代替Future接口 CompletableFuture减少阻塞和轮询可以传入回调对象当异步任务完成或者发生异常时自动
调用回调对象的回调方法。
package com.nanjing.gulimall.zhouyimo.test;import java.util.concurrent.*;/*** author zhou*/
public class CompletableFutureUseDemo {public static void main(String[] args) throws ExecutionException, InterruptedException {ExecutorService executorService Executors.newFixedThreadPool(3);CompletableFutureInteger completableFuture CompletableFuture.supplyAsync(() - {System.out.println(Thread.currentThread().getName() ---come in);int result ThreadLocalRandom.current().nextInt(10);try {TimeUnit.SECONDS.sleep(1);} catch (InterruptedException e) {e.printStackTrace();}if (result 5) { //模拟产生异常情况int i 10 / 0;}System.out.println(----------1秒钟后出结果 result);return result;}, executorService).whenComplete((v, e) - {if (e null) {System.out.println(计算完成更新系统 v);}}).exceptionally(e - {e.printStackTrace();System.out.println(异常情况 e.getCause() e.getMessage());return null;});System.out.println(Thread.currentThread().getName() 先去完成其他任务);executorService.shutdown();}
}改下随机数测试正确的情况