実行者は通常、(短期間)タスクの場合に使用されますが、長時間実行されているタスクを処理する最善の方法は何ですか。アプリケーションの存続期間中に実行する必要があるタスク長期実行タスクの実行方法
別のスレッドで実行されるタスクがX秒ごとにディレクトリをポーリングするアプリケーションがあるとします。アプリケーションが終了しない限り、このタスクは決してポーリングを終了しません。これをどのように開始して管理しますか?
new Thread(theLongRunningTask).start()
はこのような悪いオプションですか?
スレッドファクト+デーモンの代わりに、終了時にエグゼキュータをシャットダウンすることができます(送信されたタスクが中断しやすい、または常に実行されないと仮定)。 – assylias
はい、私は同意します - 彼らはスレッド管理の面であなたのコントロールから簡単に飛び出ることができるので、デーモンスレッドはあまり好きではありません。 – Cowboy