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

我正在运行一段代码来理解守护进程线程的概念和线程终止。即使在 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;


        }


    }



}

提前致谢。


千万里不及你
浏览 79回答 1
1回答

GCT1015

在启动线程之前,您必须将线程设置为守护进程。如果您阅读 API 文档,它会指出“必须在线程启动之前调用此方法”。所以交换 start 和 setDaemon 行,你应该很好。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java