// Java 异步方法示例
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
public class AsyncExample {
// 模拟一个异步任务
public static CompletableFuture<String> asyncTask() {
return CompletableFuture.supplyAsync(() -> {
try {
// 模拟耗时操作
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return "异步任务完成";
});
}
public static void main(String[] args) {
// 调用异步方法
CompletableFuture<String> future = asyncTask();
// 继续执行其他代码,无需等待异步任务完成
System.out.println("主线程继续执行");
// 等待异步任务完成并获取结果
try {
String result = future.get(); // 阻塞直到异步任务完成
System.out.println(result);
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
}
}
CompletableFuture.supplyAsync
来创建一个异步任务,并在其中模拟了一个耗时操作(例如网络请求或文件读取)。asyncTask
方法来启动异步任务,然后立即输出一条消息表示主线程可以继续执行其他任务,而不需要等待异步任务完成。最后,通过 future.get()
阻塞主线程,等待异步任务完成并获取其结果。这种方式可以有效避免阻塞主线程,提高程序的响应性和性能。
上一篇:java时间格式转换
下一篇:javaweb三大组件
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站