共計 845 個字符,預(yù)計需要花費 3 分鐘才能閱讀完成。
在 Java 中,可以使用 Future 和 CompletableFuture 類來獲取異步執(zhí)行的結(jié)果。
-
使用 Future:
- 定義一個 Callable 對象,實現(xiàn) call() 方法來執(zhí)行異步操作,并返回結(jié)果。
- 使用 ExecutorService 的 submit() 方法提交 Callable 對象,返回一個 Future 對象。
- 調(diào)用 Future 對象的 get() 方法來獲取異步操作的結(jié)果。如果異步操作還沒完成,get() 方法會阻塞直到異步操作完成。
- 示例代碼:
Callable<String> callable = () -> {// 異步操作 return " 異步操作結(jié)果 "; }; ExecutorService executorService = Executors.newSingleThreadExecutor(); Future<String> future = executorService.submit(callable); String result = future.get(); System.out.println(result);
-
使用 CompletableFuture:
- 使用 CompletableFuture.supplyAsync() 方法來執(zhí)行異步操作,并返回一個 CompletableFuture 對象。
- 調(diào)用 CompletableFuture 對象的 get() 方法來獲取異步操作的結(jié)果。如果異步操作還沒完成,get() 方法會阻塞直到異步操作完成。
- 示例代碼:
CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {// 異步操作 return " 異步操作結(jié)果 "; }); String result = future.get(); System.out.println(result);
這些方法都會阻塞主線程,直到異步操作完成并返回結(jié)果。如果不希望阻塞主線程,可以使用回調(diào)函數(shù)或使用 CompletableFuture 的其他方法來處理異步操作的結(jié)果。
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!
正文完