ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

异步调用

异步调用
1. 异步执行一个方法
import java.util.concurrent.CompletableFuture;public class AsyncExample {public static void main(String[] args) {CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {// 这里是你要异步执行的方法System.out.println("执行了一个异步任务");});future.join(); // 等待异步任务完成
    }
}2. 异步执行一个返回结果的方法
import java.util.concurrent.CompletableFuture;public class AsyncExample {public static void main(String[] args) {CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {// 这里是你要异步执行的方法,并返回结果return "返回的结果";});future.thenAccept(result -> System.out.println(result)) // 使用thenAccept来处理结果.join(); // 等待异步任务完成
    }
}
3. 组合多个异步任务
import java.util.concurrent.CompletableFuture;public class AsyncExample {public static void main(String[] args) {CompletableFuture<String> future1 = CompletableFuture.supplyAsync(() -> {// 第一个异步任务return "结果1";});CompletableFuture<String> future2 = CompletableFuture.supplyAsync(() -> {// 第二个异步任务,依赖于第一个任务的完成结果return future1.thenApply(result1 -> result1 + " 附加结果");});future2.thenAccept(result -> System.out.println(result)) // 处理最终结果.join(); // 等待异步任务完成
    }
}4. 处理异常
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;public class AsyncExample {public static void main(String[] args) {CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {// 这里是可能抛出异常的代码块throw new RuntimeException("出错了"); // 模拟异常情况
        });future.exceptionally(ex -> { // 处理异常情况System.err.println("处理异常: " + ex.getMessage());return "异常处理结果"; // 可以返回一个默认值或者错误信息等}).join(); // 等待异步任务完成,即使有异常也会被处理完并返回结果(如果有)
    }
}

 

返回列表