等待可完成的未来线程完成的推荐方法是什么
2022-08-31 17:40:37
我正在使用如下代码所示。但是关于我应该等到所有runnables完成的方式,我发现了两种方法,我不知道它们之间的区别,哪一个是最佳实践?它们如下所示:CompletableFuture
验证码:
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);
等待所有可运行项完成的第一种方法:
this.growSeedExecutor.shutdown();
this.growSeedExecutor.awaitTermination(1, TimeUnit.DAYS);
第二种等待所有可运行项完成的方法:
CompletableFuture.allOf(this.growSeedFutureList).join();
请让我知道哪一个是推荐的。