5

Oracle Java APIを確認しました。これにより、FutureTask.isDone()に関する情報が得られます。

ただし、タスクが完了したか、エラーで終了したかを確認する必要があります。isDone()メソッドは、完了/終了しても戻ります。しかし、何らかの問題で完了したのか終了したのかを知る必要があります。

4

3 に答える 3

12

完了したら、後でFutureTask呼び出しますget()(タイムアウトなしの場合もあり、すぐに戻る必要があります)。結果を返すか、次をスローします。

ExecutionException-計算で例外がスローされた場合

ExecutionException.getCause()タスクからスローされた例外を返します。

于 2012-08-02T12:00:30.140 に答える
0

FutureTask.get()を呼び出してみませんか?

これにより、結果が返されるか、最初にスロー/キャッチされた例外を含む例外がスローされます。タスクが完了していない場合、ditはブロックされ、タイムアウトを提供するオプションがあります。

私は通常、クライアントがポーリングするのではなく、作成された後に順番get()にそれぞれを呼び出すことを期待します。FutureTaskisDone()

于 2012-08-02T12:00:37.713 に答える
0

trueを返す場合isDone()は、メソッドを呼び出しget()て実行結果を確認することで結果を取得します。操作は、問題を見つけることができる原因で構成されるをget()スローする可能性があります。ExecutionException

于 2012-08-02T12:01:03.473 に答える