Was ist die empfohlene Methode, um zu warten, bis die zukünftigen Completable-Threads beendet sind

Ich benutzeCompletableFuture wie unten im Code gezeigt. In Bezug auf die Art und Weise, wie ich warten soll, bis alle Läufe fertig sind, habe ich zwei Möglichkeiten gefunden und kenne den Unterschied zwischen beiden nicht und welche ist die beste Vorgehensweise? Sie sind wie folgt

Cod:

this.growSeedFutureList = CompletableFuture.runAsync(new GrowSeedSERun(this.saliencyMat, this.seedXY, this.seedVal), this.growSeedExecutor);
this.growSeedFutureList = CompletableFuture.runAsync(new GrowSeedNWRun(this.saliencyMat, this.seedXY, this.seedVal), this.growSeedExecutor);
this.growSeedFutureList = CompletableFuture.runAsync(new GrowSeedNERun(this.saliencyMat, this.seedXY, this.seedVal), this.growSeedExecutor);
this.growSeedFutureList = CompletableFuture.runAsync(new GrowSeedSWRun(this.saliencyMat, this.seedXY, this.seedVal), this.growSeedExecutor);

First Ansatz zu warten, bis alle Runables fertig sind:

this.growSeedExecutor.shutdown();
this.growSeedExecutor.awaitTermination(1, TimeUnit.DAYS);

Second Ansatz zu warten, bis alle Runables fertig sind:

CompletableFuture.allOf(this.growSeedFutureList).join();

Bitte teilen Sie mir mit, welche empfohlen wird.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage