| supplyAsync | 创建带返回值的异步任务的 |
| runAsync | 创建无返回值的异步任务 |
| thenApply | 将job2提交到线程池中异步执行,实际执行job2的线程可能是另外一个线程 |
| thenApplyAsync | 由执行job1的线程立即执行job2,即两个job都是同一个线程执行的 |
| thenAccept | 接收上一个任务的返回值作为参数,但是无返回值; |
| thenRun | 没有入参,也没有返回值 |
| exceptionally | exceptionally方法指定某个任务执行异常时执行的回调方法,会将抛出异常作为参数传递到回调方法中,如果该任务正常执行则会exceptionally方法返回的CompletionStage的result就是该任务正常执行的结果 |
| whenComplete | whenComplete是当某个任务执行完成后执行的回调方法,会将执行结果或者执行期间抛出的异常传递给回调方法,如果是正常执行则异常为null,回调方法对应的CompletableFuture的result和该任务一致,如果该任务正常执行,则get方法返回执行结果,如果是执行异常,则get方法抛出异常 |
| handle | 跟whenComplete基本一致,区别在于handle的回调方法有返回值,且handle方法返回的CompletableFuture的result是回调方法的执行结果或者回调方法执行期间抛出的异常,与原始CompletableFuture的result无关了。 |
| thenCombine/thenAcceptBoth/runAfterBoth | 这三个方法都是将两个CompletableFuture组合起来,只有这两个都正常执行完了才会执行某个任务,区别在于,thenCombine会将两个任务的执行结果作为方法入参传递到指定方法中,且该方法有返回值;thenAcceptBoth同样将两个任务的执行结果作为方法入参,但是无返回值;runAfterBoth没有入参,也没有返回值。注意两个任务中只要有一个执行异常,则将该异常信息作为指定任务的执行结果。 |
Java异步调用总结
最新推荐文章于 2025-11-17 12:53:13 发布
本文详细介绍了Java中用于异步任务处理的方法,包括supplyAsync、runAsync、thenApply、thenApplyAsync、thenAccept、thenRun、exceptionally、whenComplete、handle以及thenCombine/thenAcceptBoth/runAfterBoth等。这些方法在并发编程中用于优化性能,管理任务执行顺序,以及异常处理。了解这些方法对于提升Java应用的并发性能至关重要。
611

被折叠的 条评论
为什么被折叠?



