IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

variable locale dans une Application multithreading


Sujet :

Servlets/JSP Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut variable locale dans une Application multithreading
    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
    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();
    }
    La classe Presentation :
    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;
         }
    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.

  2. #2
    Membre averti Avatar de florentB
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2006
    Messages : 332
    Points : 441
    Points
    441
    Par défaut
    les variables m_codage et m_presentation que tu utilises dans ta servlet, ce sont des attributs de classes ou elles sont définies dans ta méthode ?
    Si ce sont des variables d'instance, déclare les dans ta méthode ... c'est juste une idée comme ca ...

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Je te remercie de ta réponse,

    m_codage et m_presentation sont des instances de la classe Codage te Presentation.
    m_codage : pour recuperer le type de codage de chaque client (plusieurs paramètres associes).
    m_presentation : pour ouvrir le connexion avec le serveur + manipuler les données et les envoyer vers le client (pages web).

    mon probleme est la variable status de la classe Presentation.

  4. #4
    Membre averti Avatar de florentB
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2006
    Messages : 332
    Points : 441
    Points
    441
    Par défaut
    Je ne vois pas d'ou cela peut venir.
    Cependant, il y a peut etre une methode qui pourrait t'intéresser au niveau de la classe Thread. isAlive(). Cette méthode te renvoie true à partir du moment ou le thread est en cours d'execution, false sinon (pas encore lancé ou thread mort).
    J'espère que cela pourra t'aider quand meme.

Discussions similaires

  1. Variables globales dans une application ?
    Par Foxie dans le forum Débuter
    Réponses: 4
    Dernier message: 07/11/2009, 13h56
  2. [MySQL] variable session dans une application
    Par cheik_koita dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 27/02/2009, 10h36
  3. Réponses: 14
    Dernier message: 08/05/2008, 16h13
  4. [Syntaxe] Variable locale dans une boucle for
    Par Kaeguri dans le forum C++
    Réponses: 3
    Dernier message: 04/05/2007, 09h09
  5. Réponses: 2
    Dernier message: 08/04/2007, 22h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo