CompletableFuture 无返回值 不等待结果
时间: 2024-09-07 09:01:04 浏览: 85
CompletableFuture 异步处理
`CompletableFuture`是Java 8引入的一个类,它提供了非常灵活的方式来处理异步编程。当你使用`CompletableFuture`并且不关心其计算结果时,你可以使用它的`runAsync`方法。这个方法接受一个`Runnable`接口的实现,这个接口不返回任何结果,因此你可以在这个`Runnable`中执行一些不需要返回值的异步任务。
使用`runAsync`方法时,你可以选择传递一个自定义的`Executor`(执行线程池),如果不传递,则会使用`ForkJoinPool.commonPool()`作为默认的执行者。这个方法会返回一个`CompletableFuture<Void>`对象,你可以利用这个对象来做一些其他异步操作的组合。
下面是一个简单的例子:
```java
import java.util.concurrent.CompletableFuture;
public class CompletableFutureExample {
public static void main(String[] args) {
CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
// 这里是异步执行的任务代码,没有返回值
System.out.println("Asynchronous task without return value.");
});
// 因为没有结果,所以不需要等待,直接关闭程序
System.exit(0);
}
}
```
在这个例子中,我们创建了一个`CompletableFuture<Void>`来执行一个不返回任何值的异步任务。由于我们不关心任务的结果,所以在任务执行完毕后,我们直接关闭了程序。这种情况下,`CompletableFuture`就不会有结果返回,我们也就不需要等待它。
阅读全文