CompletableFuture3

パブリック クラスCompletableFuture3 { 


    公共 静的 ボイドメイン(文字列[]引数)がExecutionException、InterruptedExceptionある{スロー
 //         ; TESTJOIN()
         testCompletableException(); 
    } 

    / * * 
     * completeExceptionallyは将来が完了していない場合、このような方法は、ブロックしない取得することができ、そのコールを取得方法は、例外スロー
     * @throws ExecutionException 
     * @throws InterruptedExceptionある
     * / 
    パブリック 静的  ボイド  testCompletableExceptionを()ExecutionException、InterruptedExceptionある{スロー
        CompletableFutureの<string>将来CompletableFuture.supplyAsync =(() - > { 
            SLEEPを(。5); 
            。[システムOUTの .println(" ======= " );
             リターン " こんにちは" ; 
        }); 
        SLEEP(1。); 
        future.completeExceptionally(新しい新しい例外()); 
        。[システムOUTの .println(フューチャー。取得()); 
    } 

    / * * 
     *取得結果は、チェック例外がスローされますゲットするという違いで、例外のチェックをスローしない参加する
     * / 
    パブリック 静的な  無効  TESTJOIN(){ 
        CompletableFuture <文字列> = CompletableFuture未来を。 supplyAsync(() - > {
            睡眠(5 ); 
            システム。アウト(.println " ======= " )。
            返す こんにちは; 
        }); 
        文字列結果 = future.join()。
        システム。アウト.println(結果); 
    } 

    プライベート 静的  ボイド   睡眠(INT 秒){
         試み{ 
            TimeUnit.SECONDS.sleep(秒)。
        } キャッチ(InterruptedExceptionある電子){ 
            e.printStackTrace(); 
        } 
    }
}

おすすめ

転載: www.cnblogs.com/moris5013/p/12038551.html