Я планирую создать поток, который будет вести себя как таймер. Я буду использовать сон, чтобы перезапустить операцию после определенной задержки.
Я волнуюсь, если JVM может внезапно убить мою нить, не закрывая приложение,
Так что если приложение запущено, и эта нить умирает, моя функция не сможет получить новый токен.
Либо мне придется написать некоторую ручную функцию, чтобы перезапустить ее.Может ли JVM убить поток таймера/демона, пока приложение работает (внезапно)?
Так что мой вопрос: может ли JVM внезапно убить любую нить?
Какое оптимальное решение для планирования задачи? Поскольку время выполнения моей задачи наступает во время выполнения, я не могу использовать постоянных исполнителей расписания.
поэтому я не могу использовать ScheduleExecutor, потому что расписание, которое я получаю, поступает из запланированного потока. поэтому выполнение первого потока будет давать мне график для второго выполнения. Внезапное значение Если в jvm есть из памяти или какой-либо другой ошибки, будет ли она очищать потоки? и может убить мой поток или попытаться его перезапустить? –
Это зависит от того, как отключается JVM. В общем, JVM пытается сделать изящное завершение для всех ваших потоков. Но он отключается только в том случае, если нет потоков не-демона. Если в потоке есть исключение, поток выходит, как и любой другой поток. Посмотрите http://stackoverflow.com/questions/6546193/how-to-catch-an-exception-from-a-thread, если вы хотите знать, как поймать исключения в потоках. – Philipp