[Thread] Recuperer le Thread qui s'execute dans la methode run()
Bonjour,
J'ai un Thread qui lance la methode run(), lorsque je veux mettre en pause ce qui s'execute dans methode run(), je fais un wait(1000) en dehors du run() mais ca met pas en pause, mais si je fait le wait a l'interieur de la methode run() sa fonctionne.
je voudrais controller le pause a l'exetrieur de la methode run() (pas de test dedans) ce qui ma mener a penser a recuperer le thread correspondant mais j'arrive pas malheuresment.
voici la partie du 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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
public void run() {
int i = 0;
while (true) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("le compteur est = " + i);
i++;
}
}
}
public void pause() throws InterruptedException {
synchronized (this) {
this.wait(5000);
System.out.println("le thread est en pause");
}
}
public void resume() {
synchronized (this) {
this.notifyAll();
}
}
public static void main(String[] args) throws InterruptedException {
TestThread test = new TestThread();
Thread th = new Thread(test);
th.start();
Thread.sleep(3000);
// 1er test
test.pause();
test.resume();
// 2eme test
synchronized (th) {
th.wait(5000);
System.out.println("le thread est en pause");
}
synchronized (th) {
th.resume();
System.out.println("le thread a repris");
} |
Merci pour votre aide.