Java 为什么setdaemon属性在主线程结束时不结束子线程?
我正在运行下面的代码来理解守护进程线程的概念和线程终止。即使主方法完成后,程序仍会继续打印。我是不是遗漏了什么Java 为什么setdaemon属性在主线程结束时不结束子线程?,java,multithreading,daemon,Java,Multithreading,Daemon,我正在运行下面的代码来理解守护进程线程的概念和线程终止。即使主方法完成后,程序仍会继续打印。我是不是遗漏了什么 package threading; public class ThreadInterruption { public static void main(String[] args) { Thread t = new Thread(new RanThread()); t.start(); t.setDaemon(true);
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文档,它会声明“必须在线程启动之前调用此方法。”
因此,交换start和setDaemon行,您应该会做得很好。您必须在启动线程之前将其设置为守护进程 如果您阅读API文档,它会声明“必须在线程启动之前调用此方法。” 因此,交换start和setDaemon行,您应该会很好