2016-05-25 4 views
2

Я знаю, что поток может быть демона или не-демона. Мы можем использовать метод isDaemon(), чтобы проверить, является ли поток демонами или нет. Метод isDaemon() также работает с группами потоков.Что такое группа потоков демона в JAVA?

class MyThread extends Thread 
{ 
MyThread(ThreadGroup g, String name) 
{ 
    super(g,name); 
} 
public void run() 
{ 
    long i = 0; 
    for(long l=0; l<999999999; l++) 
    { 
    i=i+3; 
    } 
} 
} 

class Check 
{ 
public static void main(String[] args) 
{ 
    ThreadGroup sys = Thread.currentThread().getThreadGroup().getParent(); 
    ThreadGroup parent = new ThreadGroup("parent"); 
    MyThread t1 = new MyThread(parent, "t1"); 
    ThreadGroup child = new ThreadGroup(parent,"child"); 
    Thread t2 = new Thread(child, "t2"); 
    t1.start(); 
    t2.start(); 
    ThreadGroup[] t = new ThreadGroup[sys.activeGroupCount()]; 
    sys.enumerate(t); 
    for(ThreadGroup ti: t) 
    { 
    System.out.println(ti.getName()+" "+ti.isDaemon()); 
    } 
    System.out.println(sys.getName()+" "+sys.isDaemon()); 
} 

Выход:

main false 
parent false 
child false 
system false 

Здесь система также не-демон групповой поток. Как группа потоков может быть демоном? Я имею в виду, каковы свойства группы потоков демона? Как системная нить-группа не является демоном?

+0

Может быть, я получил ваш вопрос неправильно, но вы можете сделать любой поток демон, как этот 'sys.setDaemon (истина);' – Helios

+0

Я не говорю о «потоке». Я говорю о демонах и не-демонах «группы потоков». –

+0

То же самое относится и к группе нитей – Helios

ответ

3

Точно так же, как Тема: java.lang.ThreadGroup#setDaemon. Когда вы создаете группу потоков, вы можете отметить ее как демона.

В соответствии с Javadoc:

Группа нити демона автоматически уничтожаются, когда его последняя нить остановлена ​​или его последняя группа нити разрушена.

+0

спасибо .. Но я хочу знать свойства группы потоков демона .. –

+1

В соответствии с javadoc: группа потоков демона автоматически уничтожается, когда ее последний поток остановлен или его последняя группа потоков разрушается. – Nikem

1

Да, вы можете установить группу Thread как поток демона.

/** 
* Changes the daemon status of this thread group. 
* <p> 
* First, the <code>checkAccess</code> method of this thread group is 
* called with no arguments; this may result in a security exception. 
* <p> 
* A daemon thread group is automatically destroyed when its last 
* thread is stopped or its last thread group is destroyed. 
* 
* @param  daemon if <code>true</code>, marks this thread group as 
*      a daemon thread group; otherwise, marks this 
*      thread group as normal. 
* @exception SecurityException if the current thread cannot modify 
*    this thread group. 
* @see  java.lang.SecurityException 
* @see  java.lang.ThreadGroup#checkAccess() 
* @since  JDK1.0 
*/ 
Смежные вопросы