【发布时间】:2011-09-14 07:05:29
【问题描述】:
我看了org.apache.nutch.parse.ParseUtil.runParser(Parser p, Content content)的出处。
这两个方法调用是否做同样的事情:
指令1:
t.interrupt();
指令2:
task.cancel(true);
org.apache.nutch.parse.ParseUtil.runParser(Parser p, Content content)的来源是:
ParseCallable pc = new ParseCallable(p, content);
FutureTask<ParseResult> task = new FutureTask<ParseResult>(pc);
ParseResult res = null;
Thread t = new Thread(task);
t.start();
try {
res = task.get(MAX_PARSE_TIME, TimeUnit.SECONDS);
} catch (TimeoutException e) {
LOG.warn("TIMEOUT parsing " + content.getUrl() + " with " + p);
} catch (Exception e) {
task.cancel(true);
res = null;
t.interrupt();
} finally {
t = null;
pc = null;
}
return res;
【问题讨论】: