当前位置:嗨网首页>书籍在线阅读

10-结果分析

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

结果分析

本节介绍了如何使用 Callable 接口来提交并发任务并返回结果。在本案例中,你创建了 FactorialCalculator 对象并实现 Callable 接口,然后返回一个 Integer 类型值。因此调用 call() 方法会返回一个 Integer 类型值。

本案例的另一个要点在于 Main 类。用 submit() 方法提交一个 Callable 对象给执行器去执行时,该方法接收一个 Callable 对象作为参数,并返回一个 Future 对象。通过 Future 对象可以实现如下两个目的。

  • 可以获取任务状态。如果取消了任务并想检查这个任务是否已执行完毕,则可以使用 isDone() 方法来判断。
  • 可以通过 get() 方法获取 call() 方法的返回结果。该方法会等待直到 Callable 实例对象中的 call() 方法执行完毕并返回结果。如果在 get() 方法等待返回结果时,执行线程发生了中断,则它将会抛出一个 InterruptedException 异常;如果 call() 方法抛出一个异常,则 get() 方法将会抛出一个 ExecutionException 异常。