CompletableFuture實現多任務並行,取第一個完成的結果

public static void main(String[] args){
        String result = CompletableFuture.supplyAsync(() -> {
            try {
                System.out.println("1");
                Thread.sleep(3000);
                System.out.println("1");
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            return "Hi Boy";
        }).applyToEither(CompletableFuture.supplyAsync(() -> {
            try {
                System.out.println("2");
                Thread.sleep(3000);
                System.out.println("2");
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            return "Hi Girl";
        }), s -> s).applyToEither(CompletableFuture.supplyAsync(() -> {
            try {
                System.out.println("3");
                Thread.sleep(1000);
                System.out.println("3");
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            return "Hi zhong";
        }), s -> s).join();
        System.out.println(result);
    }

只是記錄一下,對這個瞭解的不深。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章