В настоящее время я использую JMX для управления и мониторинга огромного процесса миграции, который выполняется в классе Java.
Я хотел бы иметь возможность прервать и завершить процесс, когда мне нужно, например, клиент / времятребуется, или в одной миграции произошел какой-то мертвый цикл.
Здесь мы вызываем abort изящным способом уничтожить поток, устанавливая логический флаг, и один раз каждый цикл сначала проверяет флаг, а затем решает, следует липродолжать или нет.Это было реализовано без каких-либо проблем.
Однако у меня возникли проблемы с уничтожением потока.Мой коллега предложил мне переопределить метод finalize () и попытаться уничтожить его внутри него.Тем не менее, я обнаружил в Интернете, что этот метод не сможет уничтожить объект, и он рекомендуется вызывать GC, но вместо этого пользователь.
Я полагаю, что теория в порядке, пока объектуничтожен, больше процесс не сможет произойти.Я просто не уверен, может ли это быть реализовано в JAVA или нет.
Кроме того, я хотел бы знать, есть ли другие способы, которыми вы, ребята, можете дать мне подсказку.
Буду очень признателен за вашу помощь.
PS: отношение к JMX не означает, что оно действительно имеет отношение к JMX, просто мне бы хотелось, чтобы эта команда на убийство исходила из консольного клиента JMX.