溫馨提示×

java異步線程如何獲取返回值

小億
276
2024-03-12 09:51:25
欄目: 編程語言

Java中異步線程獲取返回值的常用方法有以下幾種:

  1. 使用Future接口:可以通過Future接口和FutureTask類來獲取異步線程的返回值。Future接口提供了get()方法,可以用來獲取異步線程執(zhí)行完畢后的返回值。
ExecutorService executor = Executors.newFixedThreadPool(1);
Future<Integer> future = executor.submit(() -> {
    // 異步任務(wù)
    return 1;
});

try {
    Integer result = future.get();
    System.out.println("異步任務(wù)的返回值為:" + result);
} catch (InterruptedException | ExecutionException e) {
    e.printStackTrace();
}
  1. 使用CompletableFuture類:CompletableFuture是Java 8中提供的一個Future的實現(xiàn)類,可以用來處理異步任務(wù)的返回值。
CompletableFuture<Integer> future = CompletableFuture.supplyAsync(() -> {
    // 異步任務(wù)
    return 1;
});

future.thenAccept(result -> {
    System.out.println("異步任務(wù)的返回值為:" + result);
});
  1. 使用回調(diào)函數(shù):可以在異步任務(wù)執(zhí)行完畢后通過回調(diào)函數(shù)獲取返回值。
ExecutorService executor = Executors.newFixedThreadPool(1);
executor.submit(() -> {
    // 異步任務(wù)
    int result = 1;
    
    // 調(diào)用回調(diào)函數(shù)處理返回值
    callbackFunction(result);
});

public void callbackFunction(int result) {
    System.out.println("異步任務(wù)的返回值為:" + result);
}

以上就是幾種常用的Java異步線程獲取返回值的方法,根據(jù)具體情況可以選擇適合自己的方式。

0