variable locale dans une Application multithreading
Bonjour,
Je suis débutant de tous ce qui est multithreading:oops: .
Je travail actuellement sur une application multithreading et j'ai rencontrer un petit souci :
J'ai une variable status (true si thread x est en cours sinon false), ou moment de la connexion d'un client (maClass extends Thread) j'initialise cette variable a True et j'execute mes traitements.
Quand le client deconnecte je possitionne status a False et je ferme toute la connexion avec mon serveur.
Mon probleme apparaitre avec plusieurs utilisateurs, une fois le client 1 deconnecte tous les autres threads (des autres clients) se trouvent avec une valeur false de la variable status.
voici mon code :
servlet.java
Code:
1 2 3 4 5 6 7 8 9
|
.......
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
m_codage = new Codage();
m_presentation = new Presentation(m_codage); // instance de la classe presentation
............. traitements
m_presentation.disconnect();
} |
La classe Presentation :
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
|
public class Presentation extends Thread{
private boolean status;
public Presentation(Codage local_Codage){
status = true;
start();
}
//main loop
public void run()
{
while (status){
***********************************
Connexion avec le serveur et recuperation des données.
***********************************
}
}
public void disconnect(){
informer le client.
** afficher status
status = false;
} |
Remarque : j'ai essai d'afficher status chaque deconnexion et le resultat avec 4 client :
true
false
false
false
Voila, voila j'espère que j'ai bien detaillé mon problème.
Merci d'avance.