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

Développement Web en Java Discussion :

terminison d'un thread lors de Logout


Sujet :

Développement Web en Java

  1. #1
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Août 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2008
    Messages : 176
    Points : 73
    Points
    73
    Par défaut terminison d'un thread lors de Logout
    Bonjour,

    j'ai une application web dans laquelle je crée un thread pour chaque utilisateur qui se connecte dans la classe responsable du Login.

    je veux savoir s'il y a un moyen de récupérer le thread d'un utilisateur qui vient de se déconnecté et l'arrêter dans la classe responsable du logout.

    lors de la création de thread je lui associe l'identifiant de l'utilisateur.
    merci

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    pour le récupérer, c'est à toi de gérer l'indexation des thread dans un conteneur quelque part pour pouvoir les retrouver. Pour ce qui est d'arrêter le thread, il faut que ton thread vérifie régulièrement un marqueur d'arret quelconque (un simple bouléen par exemple) et que ta méthode de logout bascule ce flag/marqueur pour que le thread sache qu'il doit arrêter son travail (c'est à dire sortir de la méthode run() )

  3. #3
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Août 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2008
    Messages : 176
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    pour le récupérer, c'est à toi de gérer l'indexation des thread dans un conteneur quelque part pour pouvoir les retrouver. Pour ce qui est d'arrêter le thread, il faut que ton thread vérifie régulièrement un marqueur d'arret quelconque (un simple bouléen par exemple) et que ta méthode de logout bascule ce flag/marqueur pour que le thread sache qu'il doit arrêter son travail (c'est à dire sortir de la méthode run() )
    merci pour la réponse
    mais le question c'est comment sauvegarder la liste des threads et ou la mettre : j'ai utiliser un hashmap mais j'aurai une exception lorsque je veux accéder à la liste à partir de la classe logout
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    listeThread.put(session, thread);
    dans le constructeur de thread de l'utilisateur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Thread th =Threaduser.listeThread.get(session);
    dans la classe logout

    Est ce que l'uilisation static est juste , sinon comment faire


    merci

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par Sfaxiano Voir le message
    mais j'aurai une exception lorsque je veux accéder à la liste à partir de la classe logout
    merci de préciser l'exception.

  5. #5
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Août 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2008
    Messages : 176
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    merci de préciser l'exception.
    pour l'exception c'est résolu (avant je fait appel directement a la méthode thread.join() dans la classe logout: l'appel se fait de façon statique et la méthode join() n'est pas statique)

    maintenant j'utilise la variable boolean pour terminer le thread.
    le question est est ce que l'utilisation de l'appel statique sur les attribut fini et Hashmap est une bonne façon de résoudre le problème

    Merci

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    en général, il veux mieux éviter le méthodes statiques si tu en a la possibilité. En pratique, pour te dire comment faire, il faudrait savoir quel mécanisme tu utilise pour appeler ta méthode de logout. Si tu le fait à partir d'un listener, c'est dans ce listener que tu devrais stocker le Thread en question, évitant ainsi la hashmap. D'une manière général, je suppose que le thread est associé à une session utilisateur, pourquoi ne pas stocker alors le thread dedans?

  7. #7
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Août 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2008
    Messages : 176
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    en général, il veux mieux éviter le méthodes statiques si tu en a la possibilité. En pratique, pour te dire comment faire, il faudrait savoir quel mécanisme tu utilise pour appeler ta méthode de logout. Si tu le fait à partir d'un listener, c'est dans ce listener que tu devrais stocker le Thread en question, évitant ainsi la hashmap. D'une manière général, je suppose que le thread est associé à une session utilisateur, pourquoi ne pas stocker alors le thread dedans?
    merci pour l'aide,

    bon le problème est régler, mais avec l'utilisation d'un Hashmap statique (la compréhension du fonctionnement du portail me parait très difficile.)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Appel des threads lors une requete du client
    Par khaigo dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 09/10/2010, 07h35
  2. Gestion thread lors d'une connexion FTP
    Par lucas67 dans le forum C#
    Réponses: 4
    Dernier message: 12/07/2010, 15h48
  3. [Debug]Donner des noms aux thread lors du débugage
    Par jeje99 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 21/12/2005, 16h49
  4. Thread : cmt la killer lors d'un gros calcul
    Par Rodrigue dans le forum C++Builder
    Réponses: 3
    Dernier message: 05/01/2004, 19h54
  5. [VC++6][DX9] Problème de thread lors d'un blit ...
    Par grandjouff dans le forum DirectX
    Réponses: 2
    Dernier message: 12/06/2003, 22h22

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