【发布时间】:2022-06-30 14:17:06
【问题描述】:
我正在 java8 中尝试这个:
public static void main(String[] args) throws Exception {
CompletableFuture<Integer> future = CompletableFuture.supplyAsync(
() -> { return 911; });
future.whenComplete(
(result, error) -> {
System.out.println("Alarm:" + result);
error.printStackTrace();
}
);
future.wait();
}
运行后,我得到了这个输出:
Alarm:911
[WARNING]
java.lang.IllegalMonitorStateException
at java.lang.Object.wait (Native Method)
at java.lang.Object.wait (Object.java:502)
at mygroup.UseCompletableFuture.main (UseCompletableFuture.java:15)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run (ExecJavaMojo.java:254)
at java.lang.Thread.run (Thread.java:748)
是否需要“错误”信息?我在我的代码 sn-p 中遗漏了什么吗?
【问题讨论】:
-
Object#wait 方法来自另一个宇宙(同步/等待/通知),我相信你需要使用 get() 方法。
标签: java exception monitor completable-future