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

38-其他说明

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

其他说明

CompletionService 类可以执行 Callable 或是 Runnable 对象。在本案例中,虽然用了 Callable 对象,但是也可以提交 Runnable 类型对象。由于 Runnable 对象不返回执行结果,因此并不适用于本案例中的 CompletionService 类。

该类也提供了如下两个方法来获取执行完成的 Future 对象。

  • poll() :无参的 poll() 方法会检查队列中是否有 Future 对象。如果队列为空,则该方法会立马返回null。否则该方法会返回并删除队列中的第一个元素。
  • take() :无参的 take() 方法会检查队列中是否有 Future 对象。如果队列为空,则该方法会阻塞当前线程直到队列不为空,否则会返回并删除队列中的第一个元素。

本案例使用 poll() 方法并指定了过期时间,从而控制 ReportProcessor 任务的结束。