// 异步处理示例代码
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 asyncTask() throws ExecutionException, InterruptedException {
// 使用CompletableFuture来异步执行任务
CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {
return longRunningTask();
});
// 打印当前线程信息,表明主线程没有被阻塞
System.out.println("主线程在做其他事情...");
// 等待异步任务完成并获取结果
String result = future.get(); // 这里会阻塞直到任务完成
System.out.println(result);
}
public static void main(String[] args) {
try {
asyncTask();
} catch (ExecutionException | InterruptedException e) {
e.printStackTrace();
}
}
}
Thread.sleep
来模拟耗时操作。CompletableFuture.supplyAsync
方法来异步执行任务。supplyAsync
会在一个新的线程中执行传入的 Callable
,并且返回一个 CompletableFuture
对象。通过这种方式,Java 可以实现非阻塞的异步任务处理,提高程序的并发性能。
上一篇:hashmap java
下一篇:java使用redis
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站