我创建了一个可调用的对象,它打印几行并休眠 2 秒。我创建了一个 main 方法,它创建了这个可调用对象的 10 个实例并传递给 ExecutorService 的 invokeALL 方法。
service.invokeAll(callableList, 3, SECONDS);
当我迭代返回的未来对象列表时。我收到 CancellationException。
我正在测试所有future.get()调用是否会导致CancellationException或者只有那些无法完成并被取消的任务。
无论invokeALL中的时间设置如何,我都会得到所有结果或所有CancellationExceptions。
当我调用future.get()时,我真的期待至少有一些任务会完成并返回结果。