class Counter implements Runnable{ @Override
public void run() {
for (int i = 0; ; i++) {
//System.out.println(Thread.currentThread().getThreadGroup().getName()+":"+i);
}
}
}public class Test{
public static void main(String[] args) {
ThreadGroup threadGroup = new ThreadGroup("守护线程组");
threadGroup.setDaemon(true);
Thread thread= new Thread(threadGroup, new Thread(new Counter()), "计数器线程-1");
thread.start();
System.out.println(thread.isDaemon());//为什么依然是false
}
}
解决方案 »
- 有谁用过JavaFX?
- 讲hashMap里面的内容打印到JTable上
- [JAVA新手求助]关于servlet 404错误,大家帮帮忙
- 为什么int n=0;n=n++;打印n等于0
- Java Link list
- 有没有看过这种代码new StringBuffer("a"+"b"+"c"+"e"+"f"+"g").append("hijklmn")
- 请问java中有关于缺省参数的说法吗?
- +++++无运算结果+++++
- 奇怪的问题: 什么都没有
- 有谁能告诉我在JAVA中怎么关闭别的程序(用EXEC方法调用VB的程序,但我不知道怎么在JAVA中把它关闭),谢谢帮助
- JAVA求助
- String常量池问题
1、守护线程组中的线程不一定是守护线程
2、线程是否为守护线程需要线程本身start前设定,和线程组无关
守护线程组
守护线程组最后一个线程停止或最后一个线程组被销毁时自动销毁,这是将线程组设置为守护的原因JDK源码分析public Thread(ThreadGroup group, Runnable target, String name) {
init(group, target, name, 0);
}
这是线程附带线程组的构造方法,会执行init方法
在构造方法上面有这样一段注释
这段注释的意思就是,新创建的线程被初始化标记为守护线程,当且仅当线程被标记为守护线程,可通过setDaemon方法设置,可能有点绕,不过不难理解
希望对你有点帮助
才是吧,你这set的不是线程组吗?