参考 java.util.concurrent 包和 Future 接口,我注意到(除非我弄错了)启动冗长任务和查询进度的能力只有 SwingWorker 实现类才有。
这就引出了以下问题:
有没有办法在非 GUI、非 Swing 应用程序(成像控制台应用程序)中在后台启动一个冗长的任务并允许其他线程检查进度?在我看来,没有理由将此功能仅限于 swing / GUI 应用程序。否则,在我看来,唯一可用的选项是通过 ExecutorService::submit 返回一个 Future 对象。但是,基础 Future 接口不允许监控进度。