gpt4 book ai didi

java - 为什么主线程结束时 setdaemon 属性没有结束子线程?

转载 作者:太空宇宙 更新时间:2023-11-04 09:36:28 26 4
gpt4 key购买 nike

我正在运行以下代码来理解守护线程概念和线程终止。即使 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 文档,它会指出“必须在线程启动之前调用此方法。”

所以交换 start 和 setDaemon 行就可以了。

关于java - 为什么主线程结束时 setdaemon 属性没有结束子线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56455848/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com