CompletableFuture.runAsync(() -> {});
时间: 2024-08-21 13:00:25 浏览: 34
Java组合式异步编程CompletableFuture.pdf
`CompletableFuture.runAsync(() -> {})` 是Java中用于异步执行代码的方法。它接受一个lambda表达式作为参数,该表达式会在单独的线程(通常是后台线程)上运行,而不会阻塞主线程。这个方法返回一个`CompletableFuture`对象,代表异步操作的结果。
举个例子,在`Test`类的`main`方法中,我们创建了一个`CompletableFuture<Void>`对象,通过`runAsync`启动一个任务,该任务打印从0到99的数字。由于我们没有直接调用`future.get()`来获取结果,所以主线程会继续执行,不会等待异步任务完成。当我们想要阻塞并等待任务完成后,可以使用`future.join()`,但这通常不是必需的,除非有特定的同步需求。
这里是一个简化版的`runAsync`演示[^2]:
```java
public class Test {
public static void main(String[] args) {
CompletableFuture<Void> future = CompletableFuture.runAsync(printResult);
// 主线程继续执行其他任务...
}
private static Runnable printResult = () -> {
for (int i = 0; i < 100; i++) {
System.out.println(i);
}
};
}
```
在这个例子中,`printResult`被定义为一个可运行的任务,当被`runAsync`调用时,它会被立即开始执行,但主线程并不会等待。
阅读全文