私は持っていて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
の状態をチェックします。だから、それは良い考えのようです。
ここで見逃している落とし穴はありますか?