スレッドがデーモンまたは非デーモンになる可能性があることを知っています。isDaemon() メソッドを使用して、スレッドがデーモンかどうかを確認できます。isDaemon() メソッドは、スレッド グループでも機能します。
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
ここで System も非デーモン スレッド グループです。スレッドグループがどのようにデーモンになることができますか? デーモン スレッド グループのプロパティとは何ですか? システムスレッドグループが非デーモンである理由は?