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