我有一个要求,我想启动一个轮询器,该轮询器将永远运行直到机器重新启动或进程被终止。现在,我尝试使用 shell 脚本从 main 方法启动轮询器,但问题是一旦 main 方法完成执行,轮询器也停止工作,因为我没有使用任何服务器来实现。
我听说过一些关于守护线程
的事情,但我想知道如何创建一个守护线程,它将永远运行,并帮助我的轮询器也运行。
更新:
public class SomeThread extends Thread {
@Override
public void run() {
UnitPoller unitPoller = new UnitPoller();
unitPoller.doPolling();
}
public static void main(String[] args) {
SomeThread someThread = new SomeThread();
someThread.setDaemon(true);
someThread.start();
}
}
上面是我更新的类,现在每当我从 main 方法执行这个线程时,它都会创建一个线程,但是一旦 main 方法执行完成,我的轮询器就会停止工作,因为 JVM 会关闭。
遇到这个问题,我该怎么办。
谢谢
最佳答案
您只需创建一个线程并在调用 th.start()
之前调用 th.setDaemon(true)
。
编辑:
上面回答了“如何创建守护线程”的问题,但是(随着问题范围的改变),正确的答案是:不要创建守护线程如果您希望您的线程在主线程完成后阻止 JVM 退出。
关于java - 只要守护线程运行,如何让我的程序保持 Activity 状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6491798/