1.背景を紹介する
1.非同期計算:呼び出された関数の戻り結果を待たずに関数を呼び出し、プログラムを実行します。
2.非同期計算のスレッドを開始できます
3. Future非同期計算を使用して、スレッドプールと組み合わせて使用できる計算結果を取得できます。
4. Futureの欠点:結果を待ってブロックまたはポーリングすること、および複数のFutureの結果間の依存関係を直接表現することが難しい
5. CompletableFutureはFutureの最適化であり、組み合わせることができます
2、CompletionStageインターフェース
1. CompletionStageは、非同期計算プロセスの特定の段階を表します
2. 1つのステージが完了した後、別のステージがトリガーされる場合があります
3.実行の1つの段階:関数、コンシューマー、実行可能
3、CompletableFutureクラス
1. Futureインターフェース(明示的に完了したFuture)とCompletionStageインターフェース(特定の完了段階)を実装しました
2. CompletableFutureオブジェクトを作成します。4つのメソッドがあります
public static CompletableFuture <Void> runAsync(Runnable runnable) public static CompletableFuture <Void> runAsync(Runnable runnable、Executor executor) public static <U> CompletableFuture <U> supplyAsync(Supplier <U> supplier) public static <U> CompletableFuture <U > supplyAsync(サプライヤー<U>サプライヤー、エグゼキューターエグゼキューター)
4番目に、CompletableFutureオブジェクトを使用します
変換結果
2.消費実績
3. 2つのCompletionStageの結果を結合し、変換後に戻る
4. 2つのCompletionStage、速く計算する人、その結果は次の処理に使用され、次に適用
5.例外を使用して、例外後の補償を行う
参照:
https://www.cnblogs.com/happyliu/archive/2018/08/12/9462703.html
https://www.cnblogs.com/cjsblog/p/9267163.html
https://blog.csdn.net/moonpure/article/details/81080427
https://segmentfault.com/a/1190000019571918