Home »
Java programming language
Java ThreadGroup setDaemon() method with example
ThreadGroup Class setDaemon() method: Here, we are going to learn about the setDaemon() method of ThreadGroup Class with its syntax and example.
Submitted by Preeti Jain, on December 24, 2019
ThreadGroup Class setDaemon() method
- setDaemon() method is available in java.lang package.
- 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() 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() method may throw an exception at the time of assigning daemon behavior of this ThreadGroup.
SecurityException – This exception may throw when the current thread is not permitted to update this thread group.
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.
Return value:
The return type of this method is void – it returns nothing.
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