How to Display all Threads Status in Java?

24 Feb, 2022
Threads are light-weight processes within a process.. Multithreading in java is a feature that allows concurrent execution of two or more parts of a program to maximize the utilization of CPU. here the approach to retrieve the state of the thread is via getState() method of the Thread class. A java thread can exist in any one of the following states, the status of a thread is the state in which it exists at a given instance. The life cycle of a thread as shown above is the best way out to learn more about the states where the states are as follows:
New
Runnable
Blocked
Waiting
Timed Waiting
Terminated
Note: When a thread is getting executed all other threads are in blocking state and not in waiting state.
Procedure: Displaying thread status
Threads are created by implementing the runnable interface.The status of a thread can be retrieved by getState() method of the Thread class object.
Threads are created by implementing the runnable interface.
The status of a thread can be retrieved by getState() method of the Thread class object.
Example:
Java
// Java Program to Display all Threads Status // Importing Set class from java.util packageimport java.util.Set; // Class 1// helper Class implementing Runnable interfaceclass MyThread implements Runnable {     // run() method whenever thread is invoked    public void run()    {         // Try block to check for exceptions        try {             // making thread to            Thread.sleep(2000);        }         // Catch block to handle the exceptions        catch (Exception err) {             // Print the exception            System.out.println(err);        }    }} // Class 2// Main Class to check thread statuspublic class GFG {     // Main driver method    public static void main(String args[]) throws Exception    {         // Iterating to create multiple threads        // Customly creating 5 threads        for (int thread_num = 0; thread_num < 5;             thread_num++) {             // Creating single thread object            Thread t = new Thread(new MyThread());             // Setting name of the particular thread            // using setName() method            t.setName("MyThread:" + thread_num);             // Starting the current thread            // using start() method            t.start();        }         // Creating set object to hold all the threads where        // Thread.getAllStackTraces().keySet() returns        // all threads including application threads and        // system threads        Set<Thread> threadSet            = Thread.getAllStackTraces().keySet();         // Now, for loop is used to iterate through the        // threadset        for (Thread t : threadSet) {             // Printing the thread status using getState()            // method            System.out.println("Thread :" + t + ":"                               + "Thread status : "                               + t.getState());        }    }}
  Output: 
kapoorsagar226
rajeev0719singh
sagar0719kumar
surinderdawra388
Java-Multithreading
Picked
Java
Java Programs
Java
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Queue Interface In Java
Stack Class in Java
Interfaces in Java
ArrayList in Java
Collections in Java
Initializing a List in Java
Java Programming Examples
Convert a String to Character Array in Java
Implementing a Linked List in Java using Class
Convert Double to Integer in Java