CS-Polaris 2022-11-15 16:23 采纳率: 42.9%
浏览 1

如何使Java线程永生?

问题遇到的现象和发生背景

有个任务需要在各种情况下都能继续存活,Java程序中,启动了一个线程,想要这个线程尽可能的一直存活,即使此线程被kill -9,也有办法在短时间内进行重启。

用代码块功能插入代码,请勿粘贴截图
        Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
                //以下位置为业务逻辑,此业务逻辑会一直运行
                while (true){
                    System.out.println("printing ....");
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        throw new RuntimeException(e);
                    }
                }
            }
        });

        thread.start();
        System.out.println("main thread is over");
运行结果及报错内容
main thread is over
printing ....
printing ....
printing ....
printing ....
printing ....
printing ....
我的解答思路和尝试过的方法

尝试过设置成守护线程,但守护线程并不是像它名字那样有守护的作用,而是在main线程结束后也结束了。

我想要达到的结果

Java程序中,启动了一个线程,想要这个线程尽可能的一直存活,即使此线程被杀死,也有办法在短时间内进行重启。

  • 写回答

1条回答 默认 最新

  • 於黾 2022-11-15 16:39
    关注

    kill -9杀死的是进程,你眼光只盯着线程,那能解决进程的问题吗
    就好像保镖只盯着周围有没有拿枪的人,天上飞机扔炸弹反而不管
    你要设置守护进程啊

    评论

报告相同问题?

问题事件

  • 创建了问题 11月15日