我试图异步运行两个 void method1 和 method2,然后阻止代码,直到这两个方法都完成。
这能达到这个目的吗?
CompletableFuture<Void> future1 = CompletableFuture.runAsync(() -> method1());
CompletableFuture<Void> future2 = CompletableFuture.runAsync(() -> method2());
CompletableFuture.allOf(future1, future2).join();
最佳答案
我认为代码 CompletableFuture.allOf(future1, future2).join();
应该可以正常工作。您可以尝试一下吗,有什么问题吗?
或者你可以使用类似的东西:
Arrays.asList(future1,future1).forEach(Future::get);
关于Java CompletableFuture : Trying to run two void methods as CompletableFuture and block until both complete,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64892731/