Open In App
Related Articles

How to Display all Threads Status in Java?

Like Article
Save Article
Report issue

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.



// 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
        // Catch block to handle the exceptions
        catch (Exception err) {
            // Print the exception
// 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
        // 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());



Last Updated : 24 Feb, 2022
Like Article
Save Article
Share your thoughts in the comments
Similar Reads