Bonjour,

J'ai une requête en ajax qui permet de lancer un thread. Sauf que mon problème c'est que j'ai une variable qui ne se remet pas à vide. En effet, la requête ajax est dans une jsp qui est appelé plusieurs fois dans mon application
Voilà le code exécuter quand je fait ma requête en ajax:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
MaClasse classe = new MaClasse();
Thread thread = new Thread(classe);
thread.start();
String variable = "";
synchronized(thread){
	while(lecteur.getVar().equals("")){
		try {
			thread.wait();
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}
}
variable= lecteur.getVar();
Voici MaClasse:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
public class MaClasse implements Runnable{
 
	private String var;
	public MaClasse(){
		var = "";
	}
 
	public void methode1(){
 
	}
	public void methode2() {
System.out.println("MaClasse 1: var : "+var);
synchronized(this){
var = Appel méthode autre classe pour un traitement;
System.out.println("MaClasse 2: var : "+var);
this.notify();
}
	}
 
	public String getVar() {
		return var;
	}
 
	public void setVar(String var) {
		this.var = var;
	}
 
	public void run() {
		methode1();
       synchronized(this){
		while(var.equals("")){
			try {
				this.wait();
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		this.notify();
        }
	}
}
Quand je lance mon thread pour la premier fois, la variable var est bien à vide lors du premier system.out.println mais quand je le lance une seconde fois, var à garder la valeur final du premier lancement.
J'ai l'impression qu'il détruit pas complétement mon thread.

Merci de votre aide