我尝试运行两个void method1和method2 async,然后阻塞代码,直到这两个方法都完成。
这能实现吗?
CompletableFuture<Void> future1 = CompletableFuture.runAsync(() -> method1());
CompletableFuture<Void> future2 = CompletableFuture.runAsync(() -> method2());
CompletableFuture.allOf(future1, future2).join();
2条答案
按热度按时间nr9pn0ug1#
我想是密码
CompletableFuture.allOf(future1, future2).join();
应该很管用。你能试试这个吗,有什么问题吗?或者你也可以用这样的方法:
lskq00tm2#
你为什么不使用专门的方法呢
runAsync
不过呢?是的,你的
compound
将在另一个线程上“连接”(main
在上面的例子中),因此compound done
只有在两个方法都执行之后,才会打印消息。