/** A template to control the state of a thread through setting * an internal flag. public class StoppableThread extends Thread { public static final int STOP = 0; public static final int RUN = 1; public static final int WAIT = 2; private int state = RUN; /** Public method to permit setting a flag to stop or * suspend the thread. The state is monitored through the * corresponding checkState method. */ public synchronized void setState(int state) { this.state = state; if (state==RUN) { notify(); } } /** Returns the desired state of the thread (RUN, STOP, WAIT). * Normally, you may want to change the state or perform some * other task if an InterruptedException occurs. */ private synchronized int checkState() { while (state==WAIT) { try { wait(); } catch (InterruptedException e) { } } return state; } /** An example of thread that will continue to run until * the creating object tells the thread to STOP. */ public void run() { while (checkState()!=STOP) { ... } } }
StoppableThread.java A template to place a thread in a RUN, WAIT, or STOP state.
Permanent link to this article: http://bangla.sitestree.com/stoppablethread-java-a-template-to-place-a-thread-in-a-run-wait-or-stop-state/