一、常用方法
1、获取结果的方法
(1)创建CompletableFuture
(2)future.get(…)等待结果,可设置超时的时间,该方法会阻塞,拿到结果后才进行下一步,future.complete(…)方法赋值;
(3)join(…)方法获取结果不会阻塞。
2、创建异步任务的方法
(1)supplyAsync执行CompletableFuture任务,有返回值
(2)runAsync执行CompletableFuture任务,没有返回值。
3、任务异步回调
(1)thenRun方法是做完第一个任务后,再做第二个任务。某个任务执行完成后,执行回调方法;但是前后两个任务没有参数传递,第二个任务也没有返回值;
thenRunAsync执行第二个任务时,则第一个任务使用的是你自己传入的线程池,第二个任务使用的是ForkJoin线程池。
(2)thenApply方法表示,第一个任务执行完成后,执行第二个回调方法任务,会将该任务的执行结果,作为入参,传递到回调方法中,并且回调方法是有返回值的。
thenApplyAsync......
(3)thenAccept方法表示,第一个任务执行完成后,执行第二个回调方法任务,会将该任务的执行结果,作为入参,传递到回调方法中,但是回调方法是没有返回值的。
thenAcceptAsync......
(4)thenApply方法表示,第一个任务执行完成后,执行第二个回调方法任务,会将该任务的执行结果,作为入参,传递到回调方法中,并且回调方法是有返回值的。
thenApplyAsync......
(5)whenComplete方法表示,某个任务执行完成后,执行的回调方法,无返回值;并且whenComplete方法返回的CompletableFuture的result是上个任务的结果。
(6)exceptionally方法表示,某个任务执行异常时,执行的回调方法;并且有抛出异常作为参数,传递到回调方法。
(7)handle方法表示,某个任务执行完成后,执行回调方法,并且是有返回值的;并且handle方法返回的CompletableFuture的result是回调方法执行的结果。