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

Java Discussion :

Stopper un Thread planté (fonction kill ?)


Sujet :

Java

  1. #1
    Membre averti
    Avatar de anadoncamille
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2007
    Messages
    395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 395
    Points : 310
    Points
    310
    Billets dans le blog
    1
    Par défaut Stopper un Thread planté (fonction kill ?)
    Bonjour,

    depuis la version 1.6.26 du JRE, la fonction File.canWrite() a été largement modifiée et il arrive qu'elle bloque l'explorer de Windows XP dans certains cas.

    Pour éviter que ce blocage fasse planter mon programme, j'ai intégré la fonction dans une Thread avec un join() assez court. Mon programme ne plante plus, mais la Thread reste active tant que la fonction plante.

    Y a-t-il une méthode pour killer une Thread qui fait tourner un processus à risques ?
    __________________________________
    | +
    | Sylvain Tournois - Création logicielle
    |
    | sylv.tournois.free.fr
    |

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Tu peux essayer un interrupt sur le thread bloqué. N'oublie pas de catcher cette exception dans le thread qui fait le canWrite.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre averti
    Avatar de anadoncamille
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2007
    Messages
    395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 395
    Points : 310
    Points
    310
    Billets dans le blog
    1
    Par défaut ça reste bloqué
    J'ai essayé interrupt avec un catch dans le thread bloquant, mais ça reste bloqué quand même. Pour l'instant, je n'ai pas trouvé de solution.
    __________________________________
    | +
    | Sylvain Tournois - Création logicielle
    |
    | sylv.tournois.free.fr
    |

  4. #4
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    IL n'y a pas de méthode prévue pour tuer un Thread, a moins de prévoir un timeout dans celui ci et/ou de gérer l'interruption...

    In fine pour tuer un thread qui ne répond pas, il faut tuer le process java avec un bon vieux system.exit de préférence avec un code de retour différent de 0 ...
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

Discussions similaires

  1. Associer un thread à une fonction
    Par cris73 dans le forum Prolog
    Réponses: 1
    Dernier message: 10/03/2007, 10h17
  2. Problème thread et fonction récursive
    Par cryptorchild dans le forum Langage
    Réponses: 3
    Dernier message: 27/09/2006, 12h19
  3. prb avec la fonction kill
    Par kikoufr dans le forum C
    Réponses: 3
    Dernier message: 03/09/2006, 18h32
  4. Stopper un thread
    Par Tenguryu dans le forum C++Builder
    Réponses: 2
    Dernier message: 29/07/2006, 21h57
  5. Réponses: 5
    Dernier message: 16/12/2005, 17h41

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