Javaで次のようなことをするとしましょう:
RemoteResponse response = null;
try {
FutureTask task new FutureTask(....);
executor.execute(task);
response = task.get(1000, TimeUnits.MILLISECONDS);
}
catch( TimeoutException te ) {
.. should I do something special here? ...
.. what happens to the return value of the task if task.get() throws an exception? ...
.. is it ever garbage collected? ..
}
私の質問は、TimeoutException がスローされた場合に RemoteResponse に何かが保持されますか? ガベージコレクションされますか?そのためには、タスクで cancel() メソッドを呼び出す必要がありますか?