thread wait
Hi All,
I have a problem with suspending a thread.
As suspend() has deprecated I am trying to use the wait() - notify()
combination, but after the thread pauses it won't resume again.
Here is my code:
The two button listeners that should proceed the wait and notify
actions:
/**
* Start button listener
*/
class startListener implements ActionListener {
public void actionPerformed (ActionEvent e) {
ta.append("DynamicPathGenerator> simulation started\n");
threadsSuspended = false;
if(!clock.isAlive()) {
clock.start();
}
else {
synchronized(this) {
notifyAll();
}
}
} // method actionPerformed
} // class startListener
/**
* Stop button listener
*/
class stopListener implements ActionListener {
public void actionPerformed (ActionEvent e) {
ta.append("DynamicPathGenerator> simulation stopped\n");
threadsSuspended = true;
} // method actionPerformed
} // class stopListener
The run method
public void run()
{
try {
while(true)
{
this.putText("F\n");
this.counter++;
this.putText(new Integer(counter).toString());
Thread.sleep(clock_period);
synchronized(this) {
while (threadsSuspended)
wait();
}
} // while
} catch (InterruptedException e) {
}
return;
} // method run
I have a boolean threadsSuspended = true;
variable at the initialization of the class.
The thread is initialized by:
Thread clock = new Thread(this);
Does anyone have a clue why the code is not working?
Thanks for your help!
Best,
korcs