为什么 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 行,你应该没问题。
我正在 运行 跟随一段代码来理解守护进程线程的概念和线程终止。即使在 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 行,你应该没问题。