为什么 setdaemon 属性 在主线程结束时不结束子线程?

Why setdaemon property is not ending the child thread when main thread has ended?

我正在 运行 跟随一段代码来理解守护进程线程的概念和线程终止。即使在 main 方法完成后,程序仍会继续打印。我在这里错过了什么吗?

package threading;

public class ThreadInterruption {

    public static void main(String[] args) {
        Thread t = new Thread(new RanThread());
        t.start();
        t.setDaemon(true);
        t.interrupt();
    }

}

class RanThread implements Runnable{

    @Override
    public void run() {
        int count=0;
        while(true) {
            System.out.println("Ha Ha Ha "+ count);
            count=count+1;

        }

    }


}

提前致谢。

您必须在启动前将线程设置为守护进程。

如果您阅读 API 文档,它说明 "This method must be invoked before the thread is started."

所以交换 start 和 setDaemon 行,你应该没问题。