- Java.lang Package classes
- Java.lang - Home
- Java.lang - Boolean
- Java.lang - Byte
- Java.lang - Character
- Java.lang - Character.Subset
- Java.lang - Character.UnicodeBlock
- Java.lang - Class
- Java.lang - ClassLoader
- Java.lang - Compiler
- Java.lang - Double
- Java.lang - Enum
- Java.lang - Float
- Java.lang - InheritableThreadLocal
- Java.lang - Integer
- Java.lang - Long
- Java.lang - Math
- Java.lang - Number
- Java.lang - Object
- Java.lang - Package
- Java.lang - Process
- Java.lang - ProcessBuilder
- Java.lang - Runtime
- Java.lang - RuntimePermission
- Java.lang - SecurityManager
- Java.lang - Short
- Java.lang - StackTraceElement
- Java.lang - StrictMath
- Java.lang - String
- Java.lang - StringBuffer
- Java.lang - StringBuilder
- Java.lang - System
- Java.lang - Thread
- Java.lang - ThreadGroup
- Java.lang - ThreadLocal
- Java.lang - Throwable
- Java.lang - Void
- Java.lang Package extras
- Java.lang - Interfaces
- Java.lang - Errors
- Java.lang - Exceptions
- Java.lang Package Useful Resources
- Java.lang - Useful Resources
- Java.lang - Discussion
Java - ThreadGroup parentOf() Method
Description
The Java ThreadGroup parentOf() method method tests if this thread group is either the thread group argument or one of its ancestor thread groups.
Declaration
Following is the declaration for java.lang.ThreadGroup.parentOf() method
public final boolean parentOf(ThreadGroup g)
Parameters
g − This is a thread group.
Return Value
This method returns true if this thread group is the thread group argument or one of its ancestor thread groups; false otherwise.
Exception
NA
Checking Parent of a ThreadGroup Object Example
The following example shows the usage of ThreadGroup parentOf() method in case of a ThreadGroup object. We've created a parent ThreadGroup object and assigned it a name. As next, we've created a child ThreadGroup object. Then we've created two threads using the threadgroup objects created earlier. Using parentOf() method, we're printing checking of parent of child threadgroup object.
package com.tutorialspoint; public class ThreadGroupDemo implements Runnable { public static void main(String[] args) { ThreadGroupDemo tg = new ThreadGroupDemo(); tg.start(); } public void start() { try { // create a parent ThreadGroup ThreadGroup pThreadGroup = new ThreadGroup("parent ThreadGroup"); // create a child ThreadGroup for parent ThreadGroup ThreadGroup cThreadGroup = new ThreadGroup(pThreadGroup, "child ThreadGroup"); // create a thread Thread t1 = new Thread(pThreadGroup, this); System.out.println("Starting " + t1.getName() + "..."); t1.start(); // create another thread Thread t2 = new Thread(cThreadGroup, this); System.out.println("Starting " + t2.getName() + "..."); t2.start(); // determine which ThreadGroup is parent boolean isParent = pThreadGroup.parentOf(cThreadGroup); System.out.println(pThreadGroup.getName() + " is the parent of " + cThreadGroup.getName() + "? " + isParent); // block until the other threads finish t1.join(); t2.join(); } catch (InterruptedException ex) { System.out.println(ex.toString()); } } // implements run() public void run() { for(int i = 0; i < 4;i++) { i++; try { Thread.sleep(50); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } System.out.println(Thread.currentThread().getName() + " finished executing."); } }
Output
Let us compile and run the above program, this will produce the following result −
Starting Thread-0... Starting Thread-1... parent ThreadGroup is the parent of child ThreadGroup? true Thread-1 finished executing. Thread-0 finished executing.
Checking Parent of a Multiple ThreadGroup Object Example
The following example shows the usage of ThreadGroup parentOf() method in case of multiple ThreadGroup objects. We've created a parent ThreadGroup object and assigned it a name. As next, we've created a child ThreadGroup object. Then we've created two threads using the threadgroup objects created earlier. Using parentOf() method, we're printing checking of parent of parent threadgroup object.
package com.tutorialspoint; public class ThreadGroupDemo implements Runnable { public static void main(String[] args) { ThreadGroupDemo tg = new ThreadGroupDemo(); tg.start(); } public void start() { try { // create a parent ThreadGroup ThreadGroup pThreadGroup = new ThreadGroup("parent ThreadGroup"); // create a child ThreadGroup for parent ThreadGroup ThreadGroup cThreadGroup = new ThreadGroup(pThreadGroup, "child ThreadGroup"); // create a thread Thread t1 = new Thread(pThreadGroup, this); System.out.println("Starting " + t1.getName() + "..."); t1.start(); // create another thread Thread t2 = new Thread(cThreadGroup, this); System.out.println("Starting " + t2.getName() + "..."); t2.start(); // determine which ThreadGroup is parent boolean isParent = cThreadGroup.parentOf(pThreadGroup); System.out.println(cThreadGroup.getName() + " is the parent of " + pThreadGroup.getName() + "? " + isParent); // block until the other threads finish t1.join(); t2.join(); } catch (InterruptedException ex) { System.out.println(ex.toString()); } } // implements run() public void run() { for(int i = 0; i < 4;i++) { i++; try { Thread.sleep(50); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } System.out.println(Thread.currentThread().getName() + " finished executing."); } }
Output
Let us compile and run the above program, this will produce the following result −
Starting Thread-0... Starting Thread-1... child ThreadGroup is the parent of parent ThreadGroup? false Thread-1 finished executing. Thread-0 finished executing.
Checking Parent of a Child/Grandchild ThreadGroup Object Example
The following example shows the usage of ThreadGroup parentOf() method in case of child and grandchild ThreadGroup objects. We've created a ThreadGroup object and assigned it a name. As next, we've created a child ThreadGroup object. Then we've created two threads using the child and grandchild threadgroup objects created earlier. Using parentOf() method, we're printing name of the parent of each threadgroup object.
package com.tutorialspoint; public class ThreadGroupDemo implements Runnable { public static void main(String[] args) { ThreadGroupDemo tg = new ThreadGroupDemo(); tg.start(); } public void start() { try { // create a parent ThreadGroup ThreadGroup pThreadGroup = new ThreadGroup("parent ThreadGroup"); // create a child ThreadGroup for parent ThreadGroup ThreadGroup cThreadGroup = new ThreadGroup(pThreadGroup, "child ThreadGroup"); // create a grandchild ThreadGroup for child ThreadGroup ThreadGroup gThreadGroup = new ThreadGroup(cThreadGroup, "grandchild ThreadGroup"); // create a thread Thread t1 = new Thread(cThreadGroup, this); System.out.println("Starting " + t1.getName() + "..."); t1.start(); // create another thread Thread t2 = new Thread(gThreadGroup, this); System.out.println("Starting " + t2.getName() + "..."); t2.start(); // determine which ThreadGroup is parent boolean isParent = pThreadGroup.parentOf(cThreadGroup); System.out.println(pThreadGroup.getName() + " is the parent of " + cThreadGroup.getName() + "? " + isParent); isParent = pThreadGroup.parentOf(gThreadGroup); System.out.println(pThreadGroup.getName() + " is the parent of " + gThreadGroup.getName() + "? " + isParent); // block until the other threads finish t1.join(); t2.join(); } catch (InterruptedException ex) { System.out.println(ex.toString()); } } // implements run() public void run() { for(int i = 0; i < 4;i++) { i++; try { Thread.sleep(50); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } System.out.println(Thread.currentThread().getName() + " finished executing."); } }
Output
Let us compile and run the above program, this will produce the following result −
Starting Thread-0... Starting Thread-1... parent ThreadGroup is the parent of child ThreadGroup? true parent ThreadGroup is the parent of grandchild ThreadGroup? true Thread-1 finished executing. Thread-0 finished executing.
To Continue Learning Please Login
Login with Google