正在检查```''''''



我有一个Future,我想找出它的状态。我想到的是一个代码:

try {
    // Is that a good idea? Counting on exceptions looks weird.
    future.get(0, TimeUnit.MICROSECONDS);
    this.status = DONE;
} catch (InterruptedException e) {
    Thread.currentThread().interrupt();
    throw Throwables.propagate(e);
} catch (ExecutionException e) {
    this.status = FAILED;
} catch (TimeoutException e) {
    this.status = RUNNING;
} catch (CancellationException e) {
    this.status = CANCELED;
}

看起来FutureTask会尝试锁定锁,如果可以锁定,则锁将检查Future的状态。所以这似乎是一个好主意。

我在这里缺少陷阱吗?

如注释中所建议的,只需使用Future.isDone检查运行状态即可。但是,您仍然需要致电get()来确定它是否成功完成,检查异常。

相关内容

  • 没有找到相关文章

最新更新