CompletableFuturerunAsync使用案例
CompletableFuture.runAsync使用案例:
- 异步执行任务:
CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
// 执行异步任务
System.out.println("执行异步任务");
});
// 阻塞等待异步任务执行完成
future.get();
- 异步执行任务,并指定线程池:
ExecutorService executor = Executors.newFixedThreadPool(10);
CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
// 执行异步任务
System.out.println("执行异步任务");
}, executor);
// 关闭线程池
executor.shutdown();
- 异步执行任务,并处理任务完成后的结果:
CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
// 执行异步任务
System.out.println("执行异步任务");
}).thenRun(() -> {
// 任务完成后执行的操作
System.out.println("任务完成");
});
// 阻塞等待任务完成
future.get();
- 异步执行任务,并处理任务异常:
CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
// 执行异步任务
System.out.println("执行异步任务");
}).exceptionally((throwable) -> {
// 处理任务异常
System.out.println("任务异常:" + throwable.getMessage());
return null;
});
// 阻塞等待任务完成
future.get();
- 异步执行任务,并处理任务完成后的结果和异常:
CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
// 执行异步任务
System.out.println("执行异步任务");
}).handle((result, throwable) -> {
if (throwable != null) {
// 处理任务异常
System.out.println("任务异常:" + throwable.getMessage());
} else {
// 处理任务结果
System.out.println("任务完成");
}
return null;
});
// 阻塞等待任务完成
future.get();
``
原文地址: https://www.cveoy.top/t/topic/ieLH 著作权归作者所有。请勿转载和采集!