[Thread] IllegalMonitorStateException
Hello, voila je rebute sur un probleme dont je ne me rappelle plus la solution.
Je cherche à "scheduler" des threads a partir d'un autre (pouvoir les arreter et les reprendre sur des appels de methodes faits par le thread scheduler).
Les FAQ parle d'exceptions mais ca correspond pas a ce que je veux, vu qu'une exception fait sortir du bloc try.
J'essaie avec la methode wait() mais je me chope des
Citation:
Envoyé par JVM
java.lang.IllegalMonitorStateException: current thread not owner
meme si c'est le thread qui se met lui-meme en sleep.
un peu de code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
public class Slave extends Thread {
private boolean paused = false;
public void pause() {
paused = true;
}
public void unpause() {
paused = false;
this.notify();
}
public void run() {
pause();
while (true) {
if (paused) {
try {
wait();
} catch (InterruptedException ie) {
ie.printStackTrace();
}
}
//etc..
}
}
} |
Avec ce code, l'appel de pause() provoque l'appel de wait() qui provoque l'exception.