"使用CompletableFuture的allOf方法来等待所有的CompletableFuture执行完成。\n\n示例代码如下:\n\njava\nimport java.util.concurrent.CompletableFuture;\n\npublic class Main {\n public static void main(String[] args) {\n CompletableFuture<Void> future1 = CompletableFuture.supplyAsync(() -> method1());\n CompletableFuture<Void> future2 = CompletableFuture.supplyAsync(() -> method2());\n\n CompletableFuture<Void> allFutures = CompletableFuture.allOf(future1, future2);\n allFutures.thenRun(() -> {\n // 所有异步方法执行完成后的逻辑\n System.out.println(\"All futures completed\");\n // 执行后续的方法\n method3();\n });\n\n // 阻塞等待所有异步方法执行完成\n allFutures.join();\n }\n\n public static void method1() {\n // 异步方法1的逻辑\n System.out.println(\"Method 1\");\n }\n\n public static void method2() {\n // 异步方法2的逻辑\n System.out.println(\"Method 2\");\n }\n\n public static void method3() {\n // 后续方法的逻辑\n System.out.println(\"Method 3\");\n }\n}\n\n\n在上述代码中,我们使用CompletableFuture.supplyAsync方法异步执行method1和method2两个方法。然后,我们使用CompletableFuture.allOf方法将这两个CompletableFuture组合成一个新的CompletableFuture,该CompletableFuture将在所有异步方法执行完成后完成。\n\n接着,我们使用allFutures.thenRun方法设置了一个回调函数,该函数在所有异步方法执行完成后会被调用。在回调函数中,我们可以编写所有异步方法执行完成后的逻辑,然后再执行后续的方法method3。\n\n最后,我们使用allFutures.join方法阻塞等待所有异步方法执行完成。\n

Java CompletableFuture: 如何等待所有异步任务完成再执行后续操作

原文地址: https://www.cveoy.top/t/topic/qpMs 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录