之所以不起作用,是因为在您的简单测试中,VM在所有任务完成之前就退出了。
当您致电时,保证
completableFutureCompletableFuture.get()仅完成了期货的第一期嵌套。VM退出,所有线程被杀死。
换句话说,第一个嵌套的将来可能仍然“未完成”,因为它的线程可能仍然很忙。但是,当您尝试获得其结果时,
get它当然会等到完成后才能按预期工作。试一试:
completableFutureCompletableFuture.get().get().get().get().get()
…然后您强迫所有期货都已完成,并且一切都按预期进行。



