中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

java異步調用 怎樣返回結果

小樊
81
2024-11-24 00:18:37
欄目: 編程語言

在Java中,可以使用多種方法實現異步調用并獲取結果。這里,我將向您展示如何使用CompletableFuture和ExecutorService來實現異步調用并返回結果。

  1. 使用CompletableFuture:
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;

public class AsyncExample {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        // 創建一個異步任務
        CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {
            try {
                // 模擬耗時操作
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            return "異步任務結果";
        });

        // 獲取異步任務的結果
        String result = future.get();
        System.out.println("異步任務返回的結果: " + result);
    }
}
  1. 使用ExecutorService:
import java.util.concurrent.*;

public class AsyncExample {
    public static void main(String[] args) {
        // 創建一個固定大小的線程池
        ExecutorService executorService = Executors.newFixedThreadPool(1);

        // 提交一個異步任務
        Future<String> future = executorService.submit(() -> {
            try {
                // 模擬耗時操作
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            return "異步任務結果";
        });

        // 獲取異步任務的結果
        try {
            String result = future.get();
            System.out.println("異步任務返回的結果: " + result);
        } catch (InterruptedException | ExecutionException e) {
            e.printStackTrace();
        } finally {
            // 關閉線程池
            executorService.shutdown();
        }
    }
}

在這兩個示例中,我們分別使用CompletableFuture和ExecutorService創建了一個異步任務,并在任務完成后返回了結果。請注意,這些方法都是非阻塞的,您可以在等待結果的同時執行其他任務。

0
根河市| 浙江省| 镇雄县| 婺源县| 汉中市| 普兰县| 桑植县| 长春市| 西乡县| 伊川县| 玉屏| 浦县| 根河市| 濮阳市| 镇安县| 亳州市| 晋宁县| 方正县| 长武县| 汾阳市| 邵东县| 九龙城区| 周宁县| 汕尾市| 吴旗县| 太保市| 宝应县| 厦门市| 丽水市| 延寿县| 宜兰县| 会理县| 聂荣县| 沾益县| 安溪县| 海兴县| 武定县| 许昌县| 鄂托克旗| 高雄市| 罗山县|