34-结果分析
结果分析
当任务结束运行时,管理任务的 FutureTask 对象会调用 done() 方法。在本案例中,用实现了 Callable 接口的 ExecutableTask 类和一个 FutureTask 的子类来管理 ExecutableTask 实例对象的执行。
当 FutureTask 类确定了任务的返回值,并将任务状态改为 isDone 后,它会间歇性地调用 done() 方法。虽然这时不能修改任务的返回值或是状态,但是可以关闭任务使用的资源,打印日志信息或是发送通知。 FutureTask 类也可以通过只调用一次其重写的 Runnable 或 Callable 接口的 run() 方法来确保一个指定的任务只运行一次(当运行结果可见时可以获取结果)。