多线程如何确保长时间运行的Java线程永不消亡
我有一个长期运行的线程,做家务的任务。由于系统不会立即受到影响,因此很难检测到线程的故障。我想确保这根线永远不会死。我的理解是,只要代码捕捉到所有东西(可丢弃),它就永远不会消亡。以下是示例代码:
while (true) {
try {
// house keeping logic
} catch (Throwable t) {
// do not do anything
}
}
我的理解正确吗?有没有更好的方法来托管长时间运行的后台任务?我知道ScheduledExecutorService可以周期性地安排任务,但是如果任务需要不断检查一些资源,那么将所有内容放在一个while循环中可能更有效
共 (0) 个答案