Web | This Site

Java Basics Examples
Java Tutorial
Java Useful Resources
Selected Reading
© 2011 TutorialsPoint.COM

| Home |  | References |  | Discussion Forums |  | About TP

# Java Examples - Display Thread status

## Problem Description:

How to display thread status?

## Solution:

Following example demonstrates how to display different status of thread using isAlive() & getStatus() methods of Thread.

    class MyThread extends Thread{
       boolean waiting= true;
       boolean ready= false;
       MyThread() {
       }
       public void run() {
          String thrdName = Thread.currentThread().getName();
          System.out.println(thrdName + " starting.");
          while(waiting)
          System.out.println("waiting:"+waiting);
          System.out.println("waiting...");
          startWait();
          try {
             Thread.sleep(1000);
          }
          catch(Exception exc) {
             System.out.println(thrdName + " interrupted.");
          }
          System.out.println(thrdName + " terminating.");
       }
       synchronized void startWait() {
          try {
             while(!ready) wait();
          }
          catch(InterruptedException exc) {
             System.out.println("wait() interrupted");
          }
       }
       synchronized void notice() {
          ready = true;
          notify();
       }
    }
    public class Main {
       public static void main(String args[])
       throws Exception{
          MyThread thrd = new MyThread();
          thrd.setName("MyThread #1");
          showThreadStatus(thrd);
          thrd.start();
          Thread.sleep(50);
          showThreadStatus(thrd);
          thrd.waiting = false;
          Thread.sleep(50);
          showThreadStatus(thrd);
          thrd.notice();
          Thread.sleep(50);
          showThreadStatus(thrd);
          while(thrd.isAlive())
          System.out.println("alive");
          showThreadStatus(thrd);
       }
       static void showThreadStatus(Thread thrd) {
          System.out.println(thrd.getName()+" Alive:"
          +thrd.isAlive()+" State:" + thrd.getState() );
       }
    }

## Result:

The above code sample will produce the following result.

    MyThread #1 Alive:false State:NEW
    MyThread #1 starting.
    waiting:true
    waiting:true
    alive
    alive
    MyThread #1 terminating.
    alive
    MyThread #1 Alive:false State:TERMINATED

Advertisement

Online Image Processing

Indian Baby Names