YouTip LogoYouTip

Thread Monitor

# Java Example - State Monitoring [![Image 3: Java Example](#) Java Example](#) The following example demonstrates how to monitor the state of a thread by extending the Thread class and using the currentThread.getName() method: ## Main.java File 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()); }} The output of the above code is: …… alive alive MyThread #1 terminating. alive …… [![Image 4: Java Example](#) Java Example](#)
← Cpp This PointerThread Deadlock β†’