threadgroup
ThreadGroup类的setDaemon()方法 (ThreadGroup Class setDaemon() method)
setDaemon() method is available in java.lang package.
setDaemon()方法在java.lang包中可用。
setDaemon() method is used to set the daemon behavior of this thread group. As we know the daemon thread group destroyed explicitly when either the last thread of this thread group exits or the last thread group of this thread group destroyed.
setDaemon()方法用于设置此线程组的守护程序行为。 众所周知,守护线程组在该线程组的最后一个线程退出或该线程组的最后一个线程组退出时被明确销毁。
setDaemon() method is a non-static method, it is accessible with the class object only and if we try to access the method with the class name then we will get an error.
setDaemon()方法是一种非静态方法,只能通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。
setDaemon() method may throw an exception at the time of assigning daemon behavior of this ThreadGroup.
setDaemon()方法可能在分配此ThreadGroup的守护程序行为时引发异常。
SecurityException – This exception may throw when the current thread is not permitted to update this thread group.
SecurityException-如果不允许当前线程更新此线程组,则可能引发此异常。
Syntax:
句法:
public final void setDaemon(boolean daemon_th);
Parameter(s):
参数:
boolean daemon_th – represents the daemon status of this thread group when it sets true then this group is known as the daemon thread group otherwise it sets false this group is known as non-daemon thread group.
boolean daemon_th –表示此线程组的守护程序状态,如果将其设置为true,则将该组称为守护程序线程组;否则将其设置为false,此组称为非守护程序线程组。
Return value:
返回值:
The return type of this method is void – it returns nothing.
此方法的返回类型为void –不返回任何内容。
Example:
例:
// Java program to demonstrate the example
// of void setDaemon(boolean daemon_th ) method of ThreadGroup
public class SetDaemon implements Runnable {
public static void main(String[] args) {
SetDaemon set_dae = new SetDaemon();
set_dae.setDaem();
}
public void setDaem() {
try {
// Create two thread group and the named are base
// and derived
ThreadGroup base = new ThreadGroup("Base ThreadGroup");
ThreadGroup derived = new ThreadGroup(base, "Derived ThreadGroup");
// By using setDaemon() method is to set the
// daemon behaviour for both the thread group
// base and derived
base.setDaemon(true);
derived.setDaemon(false);
// create two threads
Thread th1 = new Thread(base, this);
Thread th2 = new Thread(derived, this);
// By using getName() method is to retrieve the
// name of the thread th1
System.out.println(th1.getName() + " " + "begins.....");
// By using start() method is to start its execution
// of thread th1
th1.start();
// By using getName() method is to retrieve the
// name of the thread th2
System.out.println(th2.getName() + " " + "begins.....");
th2.setPriority(10);
// By using start() method is to start its execution
// of thread th2
th2.start();
// By using isDaemon() method is to
// return the daemon status of the thread group
boolean b1 = base.isDaemon();
boolean b2 = derived.isDaemon();
System.out.println("Is" + " " + base.getName() + " " + "daemon thread group:" + " " + b1);
System.out.println("Is" + " " + derived.getName() + " " + "daemon thread group:" + " " + b2);
// By using join() method is to wait the current
// thread till complete execution of another thread
th1.join();
th2.join();
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}
// Override run()
public void run() {
for (int k = 0; k < 100; ++k)
++k;
System.out.println(Thread.currentThread().getName() + " " + "ends.....");
}
}
Output
输出量
Thread-0 begins.....
Thread-1 begins.....
Thread-0 ends.....
Thread-1 ends.....
Is Base ThreadGroup daemon thread group: true
Is Derived ThreadGroup daemon thread group: false
翻译自: https://www.includehelp.com/java/threadgroup-setdaemon-method-with-example.aspx
threadgroup