我有一个应用程序,它定期提交要在专用线程中执行的任务。这些任务FutureTask<V>
和线程只不过是一个无限循环,当它们进入队列时执行作业,如果为空则进入睡眠状态。
有时我需要等待计算的结果,所以我调用 FutureTask 的 get() 方法,如果发生不好的事情也会抛出异常。但是在某些情况下,我不在乎结果是什么,如果有的话,但是我需要知道(log、printStackTrace() 或其他什么...)在任务执行期间是否出现某种故障。
有什么方法可以实现这一点而不必等待我不需要的 get() ?
提前致谢!
更新:如果没有其他人等待结果,在执行任务后在运行线程上调用 get() 似乎是捕获异常的唯一方法。
另一种解决方案是扩展 FutureTask 类以提供一种方法,该方法通过 java 反射公开 sync.exception 私有字段。