java - 只要守护线程运行,如何让我的程序保持 Activity 状态?

标签 java daemon

我有一个要求,我想启动一个轮询器,该轮询器将永远运行直到机器重新启动或进程被终止。现在,我尝试使用 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/

相关文章:

java - 我可以在spring服务层使用静态变量吗?

python - celery 守护进程 - 日志文件的权限被拒绝

MySQL 守护进程拒绝以 "Can' 启动服务器 : Bind on TCP/IP port: Address already in use"(it's not).

java - 在 Java 中使用什么数据类型来赚钱?

Java OS X Lion 关于菜单

java - 返回过滤元素的新实例

java - 守护线程 : Is it possible to change a running thread from user thread to daemon thread?

c - linux 使用系统 ("ping") 在守护进程中被阻止

linux - 存储 linux 守护进程所需的密码

java - Android:SQLite 使用了错误的数据库