Monday, October 6, 2025
HomeLanguagesJavaHow to Display all Threads Status in Java?

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

  1. Threads are created by implementing the runnable interface.
  2. 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 package
import java.util.Set;
 
// Class 1
// helper Class implementing Runnable interface
class 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 status
public 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:
 

Dominic
Dominichttp://wardslaus.com
infosec,malicious & dos attacks generator, boot rom exploit philanthropist , wild hacker , game developer,
RELATED ARTICLES

Most Popular

Dominic
32338 POSTS0 COMMENTS
Milvus
86 POSTS0 COMMENTS
Nango Kala
6707 POSTS0 COMMENTS
Nicole Veronica
11871 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11936 POSTS0 COMMENTS
Shaida Kate Naidoo
6825 POSTS0 COMMENTS
Ted Musemwa
7090 POSTS0 COMMENTS
Thapelo Manthata
6779 POSTS0 COMMENTS
Umr Jansen
6781 POSTS0 COMMENTS