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

Concurrence et multi-thread Java Discussion :

[Thread] arrêter un thread contenant un appel blocant


Sujet :

Concurrence et multi-thread Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2009
    Messages : 22
    Par défaut [Thread] arrêter un thread contenant un appel blocant
    Bonjour,

    Voici la situation dans laquelle je suis :
    - J'ai un Thread main (M) qui lance un thread parallèle (TP).
    - TP peut rester bloquer sur une instruction (attente de lecture sur un flux dans mon cas).
    - Si j'utilise un "boolean stop" dans M et un while(!stop) dans TP pour arrêter le traitement de TP à partir de M, en passant stop à true dans M, TP ne s’arrêtera pas car il est bloqué sur la l'attente de lecture sur le flux.

    (j'espère avoir été clair )

    Une solution trouvé sur le forum est de passer le TP en daemon, ce qui évitera de bloquer la JVM quand M se termine. Mais je souhaiterais être plus propre et terminer ce thread "polluant" en fermant le flux ouvert proprement.

    D'avance, merci pour votre aide !

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Après avoir basculé ton boolean, tu dois appeler tp.interrupt() afin que l'opération bloquante en cours lance un InterruptedException. La plupart des opération IO bloquante supportent ça.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2009
    Messages : 22
    Par défaut
    Merci, l'exception est bien prise en compte par la lecture bloquante, du coup je reprends bien la main !

    Encore merci.

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

Discussions similaires

  1. Arrêter un thread en python ?
    Par fanou31 dans le forum Général Python
    Réponses: 7
    Dernier message: 23/06/2013, 18h15
  2. [Thread] arrêter un thread
    Par melvar dans le forum Concurrence et multi-thread
    Réponses: 4
    Dernier message: 10/04/2006, 18h06
  3. [Thread] Lancer un thread puis l'arrêter
    Par GLDavid dans le forum Concurrence et multi-thread
    Réponses: 6
    Dernier message: 16/02/2006, 18h09
  4. Réponses: 18
    Dernier message: 06/04/2005, 14h09
  5. Arrêter une Thread brutalement!
    Par Rodrigue dans le forum C++Builder
    Réponses: 2
    Dernier message: 18/01/2004, 21h29

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