// Java 异步执行示例代码
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
public class AsyncExample {
// 模拟一个耗时任务
public static String longRunningTask() {
try {
Thread.sleep(2000); // 模拟耗时操作
} catch (InterruptedException e) {
e.printStackTrace();
}
return "任务完成";
}
// 异步执行方法
public static void asyncMethod() {
// 使用 CompletableFuture 来实现异步操作
CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {
return longRunningTask(); // 异步执行耗时任务
});
// 注册回调函数,在任务完成后执行
future.thenAccept(result -> {
System.out.println("异步任务结果: " + result);
});
// 主线程继续执行其他任务
System.out.println("主线程继续执行其他任务");
// 阻塞主线程,等待异步任务完成(仅用于演示)
try {
future.get(); // 等待异步任务完成并获取结果
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
asyncMethod();
}
}
Thread.sleep(2000) 来模拟 2 秒的延迟。CompletableFuture.supplyAsync 来异步执行 longRunningTask 方法。supplyAsync 会将任务提交给 ForkJoinPool 共享线程池中的某个工作线程来执行。这个例子展示了如何使用 CompletableFuture 实现异步任务的执行,并通过回调函数处理任务完成后的结果。
上一篇:java 读取本地文件
下一篇:java bitset
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站