例外が発生した場合、私はExecutorServiceでshutdownNow()を呼び出します。 isTerminated()は成功ステータスを返し、すべてのスレッドが終了するとtrue、そうでない場合はfalseを返すと考えました。しかし、私はいつも真実を得る。どんな勧告?ExecutorServiceが正常終了したかどうかを知る方法はありますか?
2
A
答えて
1
shutdownNow()
待機中のタスクは停止します。 http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/ExecutorService.html#shutdown()
shutdown()
Javadocを使用してみてください
1
私はshutdownNow()
のAPIドキュメントごととしてあなたは、むしろshutdown()
とよりshutdownNow()
を呼び出しているので、isTerminated()は常にtrueを返すされている疑いがある:
...典型的な実装では、スレッドを経由してキャンセルします。
したがって、タスクがすべて割り込みの試行に即座に応答してすぐに完了するように聞こえます。
0
「isTerminated
は、shutdownまたはshutdownNowが最初に呼び出された場合を除き、決して真ではありません。だから、タスクが成功したかどうかだけではなく、タスクが終了したかどうかを示します。 AtomicBoolean
のようなフラグをつけて、正常に完了する直前にその状態を切り替えることができます。この方法では、ExecutorService
のメソッドを使用して、タスクが終了したかどうかをチェックし、成功したかどうかを確認するフラグをチェックします。
関連する問題
- 1. boost :: processプロセスが "正常に終了したか"終了したかを知る方法?
- 2. スレッドがJavaで終了したかどうかを知る方法?
- 3. OpenGLの操作が終了したかどうかを確認する方法はありますか?
- 4. Cordova:音声ディクテーションがiOSで終了したかどうかを検出する方法はありますか
- 5. unittestクラスがすべてのテストで完了したかどうかを知る方法はありますか?
- 6. 終了した子プロセスの終了状態をシェルに正しく渡す方法はありますか?
- 7. ユーザーオープンメールかどうかを知る方法はありますか?
- 8. Stringがnullで終了するかどうかを知る方法
- 9. Yahoo Boss API(バージョン1)が正常に終了しましたか?
- 10. DBトランザクションが正常にコミットされたかどうかを知る方法?
- 11. Pythonレコードが正常に挿入されたかどうかを知る方法
- 12. プログラムが終了しているためにスレッドが中止されているかどうかを知る方法はありますか?
- 13. nodejsでajaxコールが異常終了した場合のバックエンドプロセスを停止する方法はありますか?
- 14. 終了アニメーションが終了した後にPowerPointスライドを自動進める方法はありますか?
- 15. Hyperledgerファブリックでトランザクションが終了したときに通知を受け取る方法はありますか?
- 16. Windowsサービスを正常に終了するまで何時間もかかることがありますか?
- 17. オブザーバーがNSNotificationCenterから通知を受けたかどうかを知る方法はありますか?
- 18. マルチスレッドアプリケーションでアサーションエラーから正常に終了する方法
- 19. JVMはデーモンスレッドをどのように終了させますか?または正常に終了するデーモン・スレッドを作成する方法
- 20. 通話が終了するたびに通知を受ける方法はありますか
- 21. Powershellでハングしたプロセスを終了する方法はありますか?
- 22. SQL Serverでどのセッションが終了したかを知る方法
- 23. エスプレッソアクティビティが終了したかどうかをテストするには?
- 24. すべてのAsyncTaskが終了したかどうかをチェックする方法?
- 25. 時間のかかるタスクが終了したらEclipseのタスクバーアイコンをフラッシュする方法はありますか?
- 26. スレッドが終了したらどうなりますか?
- 27. WCFクライアントチャネル(サービス)が終了したかどうかを確認する方法?
- 28. VB6プロセスIDが終了したかどうかをチェックする方法
- 29. C#でプログラムが終了したかどうかを確認する方法
- 30. NSURLConnectionのsendSynchronousRequest:returningResponse:エラーが終了したかどうかを検出する方法: