Bonjour,
Je suis débutant de tous ce qui est multithreading .
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
La classe Presentation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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(); }
Remarque : j'ai essai d'afficher status chaque deconnexion et le resultat avec 4 client :
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 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; }
true
false
false
false
Voila, voila j'espère que j'ai bien detaillé mon problème.
Merci d'avance.
Partager