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:
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 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();
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.
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(); } } }
J'ai l'impression qu'il détruit pas complétement mon thread.
Merci de votre aide
Partager