1.CompletableFuture是什么?
CompletableFuture是JDK8的新特性之一,是异步调用相关的API,用于简化异步调用,提高异步调用的效率
2.CompletableFuture有什么用?
CompletableFuture 是对 Future对象的增强(JDK1.5),解决了异步调用中的很多问题:
例如:多个异步任务之间的结果依赖问题,获取future结果时阻塞主线程的问题,以及提供了很多丰富的API用于函数式编程
3.CompletableFuture怎么用?
核心的API
1.supplyAsync(参数1,指定异步任务(有返回值),参数2(可选)指定特定的线城池,如果不指定则使用默认线城池ForkJoin)
CompletableFuture supplyAsync(Supplier supplier)
CompletableFuture supplyAsync(Supplier supplier,Executor executor)
2.runAsync(参数1,指定异步任务(无返回值),参数2(可选)指定特定的线城池,如果不指定则使用默认线城池ForkJoin)
CompletableFuture runAsync(Runnable runnable)
CompletableFuture runAsync(Runnable runnable, Executor executor)
备注:
使用公共的ForkJoinPool线程池执行,这个线程池默认线程数是CPU的核数。可以设置 JVM option:-Djava.util.concurrent.ForkJoinPool.common.parallelism 来设置 ForkJoinPool 线程池的线程数,使用共享线程池将会有个弊端,一旦有任务被阻塞