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

Langage Java Discussion :

Arrêter une execution


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Par défaut Arrêter une execution
    Bonjour,

    J'utilise JVM explorer sous Eclipse pour monitorer un code. A la fin de son execution (je dis fin car la dernière ligne du main a été executée, et car eclipse me montre le run comme étant terminé), JVM Explorer me montre 4 threads encore en vie:
    Main, ReferenceHandler, Finalizer et java-sdk-http-connection-reaper.

    Les 3 derniers sont dans un état waiting ou timed_waiting, dans les méthodes wait ou sleep, avec un lock détenu par personne. Main est dans l'état runnable.

    Je vois la mémoire continuer à bouger dans le temps. Du coup je me demande:

    1) Est-ce que JVM explorer maintient artificiellement la JVM en vie - ce que je vois ne se produirait pas sans monitoring ?

    2) Ais-je mal terminé mon programme ? Suis-je censé arrêter ces threads moi même, ou appeler une méthode du genre sys.exit ?

    Merci d'avance pour vos lumières.

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    Lorsqu'un programme arrive a sa dernière ligne d’exécution, la JVM continuera de tourner tant qu'il existe au moins 1 thread non-daemon. Donc oui, si ces threads continuent d'exister indéfiniment, tes seuls moyens de quitter ton programme sont d'invoquer System.exit() ou de terminer manuellement tous les threads non-daemon restants, ce qui peut mener, en théorie, a des soucis dans les deux cas si ces threads sont en train de réaliser des actions critiques.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/12/2007, 13h31
  2. [netbeans] Arreter une éxécution
    Par Kaor dans le forum NetBeans
    Réponses: 1
    Dernier message: 11/02/2005, 15h27
  3. Arrêter une connexion datasource
    Par yanis97 dans le forum JDBC
    Réponses: 1
    Dernier message: 18/01/2005, 16h45
  4. Arrêter une requête en cours
    Par Krapulax dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 09/09/2004, 09h54
  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