共計 1238 個字符,預計需要花費 4 分鐘才能閱讀完成。
在 Java 中,可以使用多種方法實現異步調用,下面列舉了其中的兩種常用方式:
- 使用線程池:可以使用 Java 中的
ExecutorService
來創建線程池,然后使用submit
方法提交一個任務給線程池執行,并使用Future
對象獲取異步調用的結果。以下是示例代碼:
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
public class Main {public static void main(String[] args) {// 創建線程池
ExecutorService executorService = Executors.newFixedThreadPool(1);
// 提交任務并獲取 Future 對象
Future<String> future = executorService.submit(() -> {// 異步調用的邏輯代碼
Thread.sleep(1000);
return " 異步調用結果 ";
});
// 獲取異步調用的結果
try {String result = future.get();
System.out.println(" 異步調用結果:" + result);
} catch (Exception e) {e.printStackTrace();
}
// 關閉線程池
executorService.shutdown();}
}
- 使用 CompletableFuture:
CompletableFuture
是 Java 8 中新增的一個類,可以方便地實現異步調用。以下是示例代碼:
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
public class Main {public static void main(String[] args) {// 創建 CompletableFuture 對象
CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {// 異步調用的邏輯代碼
try {Thread.sleep(1000);
} catch (InterruptedException e) {e.printStackTrace();
}
return " 異步調用結果 ";
});
// 獲取異步調用的結果
try {String result = future.get();
System.out.println(" 異步調用結果:" + result);
} catch (InterruptedException | ExecutionException e) {e.printStackTrace();
}
}
}
這兩種方法都可以實現異步調用,選擇哪種方式取決于具體的需求和情況。
丸趣 TV 網 – 提供最優質的資源集合!
正文完