在Web應用程序中,我的代碼創建一些守護程序線程作爲內部類來檢查傳入請求中的某些信息。如何確保守護進程線程始終在Java中運行?
private static class AlertThread extends Thread {
private AlertThread() {
setDaemon(true);
}
public void run() {
while (true) {
try {
...
}
catch (InterruptedException e1) {
LogFactory.getLog(AlertThread.class)
.warn("InterruptedException when waiting");
e1.printStackTrace();
}
catch (Exception e) {
mainLogger.error("Error processing Alert " + e.getMessage());
}
}
}
}
代碼工作得很好,併線運行良好,但我想,以確保該線程將一直運行,並且如果它被殺死(被任何未知的原因),我應該如何重新啓動一個新的實例?
或者一些瘋狂的人可能會拋出一個'Throwable'或一個不是錯誤或異常的子類;) –