мой выход нити java с любым предупреждением. Я понятия не имею, почему поток выходит. Я не могу найти его в jstack. И, похоже, код журнала не запускался. Мой код ниже:Выход нити Java без предупреждения
private class WorkThread extends Thread {
public WorkThread() {
super("work-thread");
setDaemon(false);
}
@Override
public void run() {
logger.info("start running thread work-tracker");
try {
while (!interrupted()) {
try {
// do something
} catch (Throwable e) {
logger.error("ignore all exception", e);
}
try {
TimeUnit.SECONDS.sleep(5);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
} finally {
logger.error("work thread exit interrupted status: {}", interrupted());
}
}
}
Я не могу найти журнал «работа выхода поток прервал статус» и ничего о «работе-нить» в журнале jstack. любое предложение?
Вы уверены, что 'interrupted()' когда-либо случается? Действительно ли ваш основной поток заканчивается, или он зависает/вы были вынуждены убить приложение? –
'e.printStackTrace' использовать его. –
'System.exit();' закончит все без выполнения 'finally'. –