HBa*_*ase 6 java concurrency future executorservice
我有一个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;
}
Run Code Online (Sandbox Code Playgroud)
看起来FutureTask会尝试持有一个锁,如果它可以获得锁将检查Future的状态.所以这似乎是一个好主意.
我在这里缺少陷阱吗?
| 归档时间: |
|
| 查看次数: |
1012 次 |
| 最近记录: |