Java 8 异步线程任务执行:使用 CompletableFuture
在 Java 8 中,可以使用 CompletableFuture 来执行异步线程任务。CompletableFuture 是一个可以用于处理异步操作结果的类,它提供了一系列的方法来处理异步任务的完成状态。
下面是一个简单的示例,演示了如何使用 CompletableFuture 来执行异步线程任务:
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
public class AsyncExample {
public static void main(String[] args) {
// 创建一个 CompletableFuture 对象,用于执行异步任务
CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {
try {
// 模拟耗时操作
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return 'Hello, world!';
});
// 使用 thenApply 方法处理异步任务的结果
CompletableFuture<String> result = future.thenApply(s -> {
System.out.println('Async operation completed!');
return s.toUpperCase();
});
try {
// 获取异步任务的结果
String finalResult = result.get();
System.out.println(finalResult);
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
}
}
在上面的示例中,我们首先使用 CompletableFuture.supplyAsync() 方法创建一个 CompletableFuture 对象,该对象会在一个新的线程中执行给定的任务。然后,我们使用 thenApply() 方法处理异步任务的结果,并返回一个新的 CompletableFuture 对象。最后,我们使用 get() 方法获取异步任务的结果。
执行上述代码会在控制台输出'Async operation completed!' 和 'HELLO, WORLD!'。
除了 thenApply() 方法,CompletableFuture 还提供了许多其他方法来处理异步任务的结果,例如 thenAccept()、thenCompose()、thenCombine() 等。具体使用哪个方法取决于你的需求。
原文地址: https://www.cveoy.top/t/topic/mYF6 著作权归作者所有。请勿转载和采集!