Thursday, September 4, 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
32261 POSTS0 COMMENTS
Milvus
81 POSTS0 COMMENTS
Nango Kala
6626 POSTS0 COMMENTS
Nicole Veronica
11799 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11856 POSTS0 COMMENTS
Shaida Kate Naidoo
6748 POSTS0 COMMENTS
Ted Musemwa
7025 POSTS0 COMMENTS
Thapelo Manthata
6696 POSTS0 COMMENTS
Umr Jansen
6716 POSTS0 COMMENTS