我在这里查看源代码http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/7u40-b43/java/util/concurrent/ExecutorCompletionService.java 看起来像这个方法
protected void done() { completionQueue.add(task); }
他们不像以下
那样做super.done()protected void done()
{
super.done();
completionQueue.add(task);
}
这是否意味着如果我说一个扩展FutureTask的类并覆盖了done()方法,那么如果我使用ExecutorCompletionService,那么这段代码将永远不会被执行?
我指的是这段代码
private class QueueingFuture extends FutureTask<Void> {
116 QueueingFuture(RunnableFuture<V> task) {
117 super(task, null);
118 this.task = task;
119 }
120 protected void done() { completionQueue.add(task); }
121 private final Future<V> task;
122 }