Oracle Java APIを確認しました。これにより、FutureTask.isDone()に関する情報が得られます。
ただし、タスクが完了したか、エラーで終了したかを確認する必要があります。isDone()メソッドは、完了/終了しても戻ります。しかし、何らかの問題で完了したのか終了したのかを知る必要があります。
Oracle Java APIを確認しました。これにより、FutureTask.isDone()に関する情報が得られます。
ただし、タスクが完了したか、エラーで終了したかを確認する必要があります。isDone()メソッドは、完了/終了しても戻ります。しかし、何らかの問題で完了したのか終了したのかを知る必要があります。
完了したら、後でFutureTask
呼び出しますget()
(タイムアウトなしの場合もあり、すぐに戻る必要があります)。結果を返すか、次をスローします。
ExecutionException
-計算で例外がスローされた場合
ExecutionException.getCause()
タスクからスローされた例外を返します。
FutureTask.get()を呼び出してみませんか?
これにより、結果が返されるか、最初にスロー/キャッチされた例外を含む例外がスローされます。タスクが完了していない場合、ditはブロックされ、タイムアウトを提供するオプションがあります。
私は通常、クライアントがポーリングするのではなく、作成された後に順番get()
にそれぞれを呼び出すことを期待します。FutureTask
isDone()
trueを返す場合isDone()
は、メソッドを呼び出しget()
て実行結果を確認することで結果を取得します。操作は、問題を見つけることができる原因で構成されるをget()
スローする可能性があります。ExecutionException