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


Comments and Discussions!

Load comments ↻





Copyright © 2024 www.includehelp.com. All rights reserved.