現在、JMX を使用して、Java クラス内で実行される大規模な移行プロセスを管理および監視しています。
必要なときにプロセスを中止して強制終了できるようにしたいと考えています。たとえば、顧客/時間が必要な場合や、1 回の移行でデッド ループが発生した場合などです。
ここでは、boolean フラグを設定してスレッドを強制終了するための適切な方法として abort を呼び出します。すべてのループが最初にフラグをチェックしてから、続行するかどうかを決定します。これは問題なく実装されています。
ただし、スレッドを強制終了するのに問題があります。私の同僚は、 finalize() メソッドをオーバーライドして、その中で強制終了するように提案してくれました。ただし、私がオンラインで見つけたのは、このメソッドはオブジェクトを破棄できず、GC ではなくユーザーによって呼び出されることをお勧めします。
オブジェクトが破壊されている限り、それ以上のプロセスは起こらないという理論は正しいと思います。これがJAVAで実装できるかどうかはわかりません。
また、他に何かヒントがあれば教えていただきたいです。
よろしくお願いいたします。
PS: JMX に関連するということは、それが実際に JMX と関係があるという意味ではありません。ただ、この強制終了コマンドが JMX コンソール クライアントから送信されることを望みます。