【发布时间】:2021-07-25 00:51:41
【问题描述】:
我有问题。我有 4 个类:classA、classB、classC,所有的函数都称为run()。现在我正在尝试使用异步,所以我想要的是以下内容:
- 在我的
MainClass中,我从classA调用了一个名为run()的异步函数 - 在
classA.run()的末尾,我调用了classB.run() - 在我的 MainClass 中,我想等到
classA和classB打印完他们的行,然后再运行classC.run()。
这是每个班级的代码。 A类:
public class classA {
public void run() {
System.out.println("CLASS A");
new classB().run();
}
}
B类:
public class classB {
public void run() {
System.out.println("CLASS B");
}
}
C类:
public class classC {
public void run() {
System.out.println("CLASS C");
}
}
这是我MainClass的代码:
public class MainClass {
public static void main(String[] args) {
CompletableFuture<Void> testRun = CompletableFuture.runAsync(() -> {
new classA().run();
});
CompletableFuture<Void> test2Run = CompletableFuture.completedFuture(testRun).thenRunAsync(() -> {
new classC().run();
});
}
}
但在我的终端中我没有看到任何打印...
我做错了什么?
【问题讨论】:
-
我添加了完整的代码,但并不多,因为我创建了一个快速测试项目。该程序的结果是在命令行中没有打印,但据我所知,异步执行的打印确实会打印?
标签: java