// 异步处理任务示例代码
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
public class AsyncTaskExample {
// 模拟一个耗时任务
public static String longRunningTask() {
try {
Thread.sleep(2000); // 模拟耗时操作
} catch (InterruptedException e) {
e.printStackTrace();
}
return "任务完成";
}
// 使用CompletableFuture进行异步处理
public static void asyncTaskWithCompletableFuture() {
// 创建一个CompletableFuture来异步执行任务
CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {
return longRunningTask();
});
// 当任务完成时,打印结果
future.thenAccept(result -> {
System.out.println("异步任务结果: " + result);
});
// 防止主线程提前结束
try {
future.get(); // 等待异步任务完成
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
asyncTaskWithCompletableFuture();
}
}
longRunningTask 方法:模拟一个耗时的任务,使用 Thread.sleep 来模拟耗时操作,并返回一个字符串表示任务完成。
asyncTaskWithCompletableFuture 方法:
CompletableFuture.supplyAsync 来异步执行 longRunningTask 方法。supplyAsync 会在一个单独的线程中执行传入的 lambda 表达式,并返回一个 CompletableFuture 对象。thenAccept 方法用于在任务完成后处理结果,这里我们简单地将结果打印出来。future.get() 用于阻塞主线程,直到异步任务完成。这样可以确保主线程不会在异步任务完成之前结束。main 方法:调用 asyncTaskWithCompletableFuture 方法来启动异步任务。
这段代码展示了如何使用 Java 的 CompletableFuture 来进行异步任务处理,并等待任务完成以获取结果。
上一篇:java list 删除元素
下一篇:java序列化和反序列化原理
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站