Another way to stop a thread : Thread Status « Threads « Java






Another way to stop a thread

Another way to stop a thread
 
public class AlternateStop extends Object implements Runnable {
  private volatile boolean stopRequested;

  private Thread runThread;

  public void run() {
    runThread = Thread.currentThread();
    stopRequested = false;

    int count = 0;

    while (!stopRequested) {
      System.out.println("Running ... count=" + count);
      count++;

      try {
        Thread.sleep(300);
      } catch (InterruptedException x) {
         // re-assert interrupt
        Thread.currentThread().interrupt();
      }
    }
  }

  public void stopRequest() {
    stopRequested = true;

    if (runThread != null) {
      runThread.interrupt();
    }
  }

  public static void main(String[] args) {
    AlternateStop as = new AlternateStop();
    Thread t = new Thread(as);
    t.start();

    try {
      Thread.sleep(2000);
    } catch (InterruptedException x) {
    }
    as.stopRequest();
  }
}

           
         
  








Related examples in the same category

1.Is thread aliveIs thread alive
2.Thread sleepThread sleep
3.Another way to suspend and resumeAnother way to suspend and resume
4.Visual suspend and resumeVisual suspend and resume
5.Thread sleep and interruptThread sleep and interrupt
6.Daemon ThreadDaemon Thread
7.Pausing the Current Thread: a thread can temporarily stop execution.
8.Pausing a Thread: set a variable that the thread checks occasionally, call Object.wait()
9.set Uncaught Exception Handler
10.Monitor a thread's status.
11.Pause the execution
12.Interrupt a thread.
13.Stopping a Thread: set a variable that the thread checks occasionally
14.Determining When a Thread Has Finished
15.Add a delay
16.Pause the execution of a thread using sleep()