Suspend Resume And Stop A Thread In Java

Chapter: Thread Last Updated: 21-07-2016 11:07:13 UTC

Program:

            /* ............... START ............... */
                
class MyThread implements Runnable {
	  Thread thrd;
	  boolean suspended;
	  boolean stopped;

	  MyThread(String name) {
	    thrd = new Thread(this, name);
	    suspended = false;
	    stopped = false;
	    thrd.start();
	  }

	  public void run() {
	    try {
	      for (int i = 1; i < 10; i++) {
	        System.out.print(".");
	        Thread.sleep(50);
	        synchronized (this) {
	          while (suspended)
	            wait();
	          if (stopped)
	            break;
	        }
	      }
	    } catch (InterruptedException exc) {
	      System.out.println(thrd.getName() + " interrupted.");
	    }
	    System.out.println("\n" + thrd.getName() + " exiting.");
	  }

	  synchronized void stop() {
	    stopped = true;
	    suspended = false;
	    notify();
	  }

	  synchronized void suspend() {
	    suspended = true;
	  }

	  synchronized void resume() {
	    suspended = false;
	    notify();
	  }
	}



public class JavaThreadControl {
	public static void main(String args[]) throws Exception {
	    MyThread mt = new MyThread("MyThread");
	    Thread.sleep(100);
	    mt.suspend();
	    Thread.sleep(100);

	    mt.resume();
	    Thread.sleep(100);

	    mt.suspend();
	    Thread.sleep(100);

	    mt.resume();
	    Thread.sleep(100);

	    mt.stop();
	  }
}
                /* ............... END ............... */
        

Notes:

  • In multithreaded programming you can be suspended, resumed or stopped completely based on your requirements.
  • suspend() method puts a thread in suspended state and can be resumed using resume() method.
  • stop() method stops a thread completely.
  • resume() method resumes a thread which was suspended using suspend() method.

Tags

Suspend, Resume And Stop A Thread, Java, Thead

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
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 State 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