有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

多线程如何确保长时间运行的Java线程永不消亡

我有一个长期运行的线程,做家务的任务。由于系统不会立即受到影响,因此很难检测到线程的故障。我想确保这根线永远不会死。我的理解是,只要代码捕捉到所有东西(可丢弃),它就永远不会消亡。以下是示例代码:

while (true) {
    try {
        // house keeping logic
    } catch (Throwable t) {
        // do not do anything
    }
}

我的理解正确吗?有没有更好的方法来托管长时间运行的后台任务?我知道ScheduledExecutorService可以周期性地安排任务,但是如果任务需要不断检查一些资源,那么将所有内容放在一个while循环中可能更有效


共 (0) 个答案