2017-08-29 4 views
2

私は、ScheduledThreadPoolExecutorのこの問題に取り組んでいる初心者のプログラマーです。ScheduledThreadPoolExecutorによるスケジューリングをどうやって保証することができますか?

私はいくつかのグーグルで、afterExecuteメソッドを使用してRunnable()から例外を処理する方法を知る必要がありました。今それはこれまでに沸く。

ScheduledThreadPoolExecutorのscheduleAtFixedRate()メソッドがエラーを解除し、スレッドがすべて突然停止する場合はどうなりますか?言い換えれば

、 エラーがエグゼキュータクラスからではなくRunnableを 実装から何ですか?

私はエラーをキャッチすることができます任意の方法&(全体のスケジュールを再起動することによって)それに&契約はありますか?

は、エラーがエグゼキュータクラスからではなくRunnableを実装 からであればどのようなあなたに

答えて

0

ありがとうございましたか!

エラーはエグゼキュータクラスからのものではありません。

私は(全体のスケジュールを再起動することにより、 )エラーのそれに& &契約をキャッチすることができます方法はありますか?

はい、エラーを認識してScheduledExecutorServiceを再起動することはできますが、実際の質問は次のようにする必要があります。

あなたのRunnableでエラーに対処できる場合は、Executorを再起動する代わりに、より適切に対処してください。

+0

コメントありがとうございます。 エラーはRunnableの実装だけから来て、私は気にする必要はないと言っていますか? https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Executors.html#newSingleThreadScheduledExecutor()を参照すると、クラス自体からエラーが発生している可能性があります。シングルスレッド実行者には、実行可能な実装からではなく、スケジューリング自体の失敗時に作業を再開する何か? – sanghyun

+0

['ScheduledExecutorService']には3つの例外があります(https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ScheduledExecutorService.html#scheduleAtFixedRate(java.lang))。 Runnable、%20long、%20long、%20java.util.concurrent.TimeUnit))これらはすべてRunnableの不正使用または不正行為のために発生します。 – alfasin

+0

@雲霧具体的な例がここに役立つ – alfasin

関連する問題