使用 CompletableFuture
的方法
-
直接使用
CompletableFuture
提交任务- 使用
CompletableFuture.runAsync()
或CompletableFuture.supplyAsync()
,这些方法会使用默认线程池来执行异步任务。 - 适合快速启动简单的异步操作,不需要额外的线程池管理。
- 使用
-
使用
CompletableFuture
并指定线程池- 通过
supplyAsync()
或runAsync()
的重载版本,接受Executor
参数,从而使用自定义线程池来执行任务。 - 适合需要对线程池进行配置和管理的场景,如调整线程数量、队列容量等。
java复制代码ExecutorService executor = Executors.newFixedThreadPool(10); CompletableFuture.supplyAsync(() -> { // 执行某些操作 return result; }, executor);
- 通过
-
通过线程池中的
submit()
方法获取CompletableFuture
- 使用
Executor
的submit()
方法(如executor.submit()
),结合CompletableFuture
来获取执行结果。 - 这通常会返回
Future
,但可以将结果转换为CompletableFuture
进行后续处理。
java复制代码Future<String> future = executor.submit(() -> { // 执行某些操作 return result; }); CompletableFuture<String> completableFuture = CompletableFuture.completedFuture(future.get());
- 使用
异常处理和结果回调
- 通过
thenApply()
、thenAccept()
和exceptionally()
等方法处理结果和异常。 CompletableFuture
提供了灵活的方式来组合多个异步操作,使得异步编程更容易。
参考:https://www.cnblogs.com/yaochunhui/p/15543298.html
标签:异步,理解,submit,Future,线程,executor,CompletableFuture From: https://www.cnblogs.com/awstan/p/18495906