How to Display all Threads Status in Java?

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.
 
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:
 
				
					



