Thread State In Java Example

Chapter: Thread Last Updated: 16-06-2017 09:07:23 UTC

Program:

            /* ............... START ............... */
                
public class JavaThreadState extends Thread {
	private volatile boolean keepRunning = true;
	private boolean suspended = false;

	public synchronized void stopThread() {
		this.keepRunning = false;
	}

	public synchronized void suspendThread() {
		this.suspended = true;
	}

	public synchronized void resumeThread() {
		this.suspended = false;
		this.notify();
	}

	public void run() {
		System.out.println("Thread started...");
		while (keepRunning) {
			try {
				System.out.println("Going to sleep...");
				Thread.sleep(1000);
				synchronized (this) {
					while (suspended) {
						System.out.println("Suspended...");
						this.wait();
						System.out.println("Resumed...");
					}
				}
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}

	public static void main(String[] args) throws Exception {
		JavaThreadState t = new JavaThreadState();
		t.start();
		Thread.sleep(2000);
		t.suspendThread();
		Thread.sleep(2000);
		t.resumeThread();
		Thread.sleep(2000);
		t.stopThread();
	}
}

                /* ............... END ............... */
        

Output

Thread started...
Going to sleep...
Going to sleep...
Suspended...
Resumed...
Going to sleep...
Going to sleep...

Notes:

  • The life cycle of the thread in java is controlled by JVM.
  • The java thread states are as follows: New,Runnable,Running,Non-Runnable (Blocked),Terminated.
  • The thread is in new state if you create an instance of Thread class but before the invocation of start() method.
  • The thread is in runnable state after invocation of start() method, but the thread scheduler has not selected it to be the running thread.
  • A thread is in terminated or dead state when its run() method exits.

Tags

Thread State, Java

Similar Programs Chapter Last Updated
Java Synchronized Method Thread 10-10-2017
Java Thread SetName() Method Thread 19-08-2017
Java Thread NotifyAll Method Thread 07-08-2017
Java Thread Synchronization Thread 07-01-2017
Java Display All Running Thread Thread 10-09-2016
Java Get Thread ID Example Thread 10-09-2016
Java Thread Suspend Example Thread 10-09-2016
Java Thread Stop Example Thread 10-09-2016
Java Set Thread Priority Thread 10-09-2016
Java Thread Status Example Thread 10-09-2016
Wait On object In Java Thread 13-08-2016
Demonstrate Join() In Java Thread Thread 13-08-2016
Wait For Threads To Finish In Java Thread 13-08-2016
Wait For Completion Of Thread In Java Thread 13-08-2016
Thread Yield In Java Example Thread 20-06-2016
Suspend Resume And Stop A Thread In Java Thread 21-07-2016
Interthread Communication In Java Example Thread 19-08-2017
Thread start() Method in Java Example Thread 21-07-2016
Thread run() Method in Java Thread 19-08-2017
Thread isAlive() Method in Java Example Thread 19-08-2017
Thread getPriority() Method In Java Example Thread 11-04-2016
Thread getName() Method In Java Example Thread 21-07-2016
Synchronized Method In Java Example Thread 25-06-2017
Wait And Notify in Java Example Thread 21-07-2016
Pause Execution with Sleep In Java Example Thread 21-07-2016
Thread Stack Trace In Java Example Thread 21-07-2016
Thread Volatile Variable In Java Example Thread 16-06-2017
Thread Sleep In Java Example Thread 15-07-2016
Thread Name In Java Example Thread 13-06-2017
Thread Join In Java Example Thread 13-06-2017

1 2