CompletableFuture:Aの分析

CompletableFutureは多くの方法があるFuturn、CompletionStage、およびCompletionStageを実現し、ゆっくりと探索する必要性、記録の1しかCompletableFutureレコードで発見します

ソースコードの一部を見てください:

パブリック クラス CompletableFuture <T> を実装将来<T>、CompletionStage <T> {...}
 パブリック 静的 ボイドメイン(文字列[]引数){
        整数結果 = CompletableFuture.supplyAsync(() - > {
             int型 A = 1 ;
             のためにINTは I = 0、I <10; I ++ ){++ ;
                System.out.println(にThread.currentThread()のgetName()。 + "++" + );
                してみてください{
                    Thread.sleep(1_000)。
                } キャッチ(InterruptedExceptionある電子){
                    e.printStackTrace();
                }
            }
            返します
        })thenCombineAsync(CompletableFuture.supplyAsync(()。 - > {
             int型 B = 1 ;
             のためにINTは I = 0、I <10; I ++ ){
                B ++ ;
                System.out.println(にThread.currentThread()のgetName()。 + "B ++" + B)。
                してみてください{
                    Thread.sleep(1_000)。
                } キャッチ(InterruptedExceptionある電子){
                    e.printStackTrace();
                }
            }
            リターンB;
        })、(B) - > +のB).join();

        System.out.println(結果)。

結果:

ForkJoinPool.commonPoolワーカー-1 A ++ 2 
ForkJoinPool.commonPool -worker-2 B ++ 2 
ForkJoinPool.commonPool -worker-1 A ++ 3 
ForkJoinPool.commonPool -worker-2 B ++ 3 
ForkJoinPool.commonPool -worker-2 B ++ 4 
ForkJoinPool.commonPool -worker -1 A ++ 4 
ForkJoinPool.commonPool -worker-1 A ++ 5 
ForkJoinPool.commonPool -worker-2 B ++ 5 
ForkJoinPool.commonPool -worker-1 A ++ 6 
ForkJoinPool.commonPool -worker-2 B ++ 6 
ForkJoinPool.commonPool -worker-1 ++ 7 
ForkJoinPool .commonPool -worker-2 B ++ 7 
ForkJoinPool.commonPool -worker-1 ++ 8
ForkJoinPool.commonPool -worker-2 B ++ 8 
ForkJoinPool.commonPool -worker-1 A ++ 9 
ForkJoinPool.commonPool -worker-2 B ++ 9 
ForkJoinPool.commonPool -worker-2 B ++ 10 
ForkJoinPool.commonPool -worker-1 ++ 10 
ForkJoinPool.commonPool -worker -1 ++ 11 
ForkJoinPool.commonPool -worker-2 B ++ 11
22

私たちは、非同期実行がある)2 supplyAsyncを(見ることができる、thenCombineAsyncは()の終了非同期に実行合併の結果であり、

おすすめ

転載: www.cnblogs.com/spring20190213dream/p/12034271.html