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

avec Java Discussion :

C'est quoi la différence entre un thread daemon et un thread utilisateur ?


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Février 2009
    Messages
    205
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 205
    Par défaut C'est quoi la différence entre un thread daemon et un thread utilisateur ?
    Bonjour,

    après avoir lu des tutos sur la différence entre un thread damon et un thread utilisateur, je n'ai toujours pas saisi la différence entre les deux.

    Un thread daemon est arrêté lorsque la JVM est arrêté, ok, mais un thread utilisateur est aussi arrêté lorsque la JMV est arrêté..., donc je ne vois pas vraiment la différence.

    Est-ce que quelqu'un pourrait m'éclairer ?

    Merci d'avance, cdt.

  2. #2
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 527
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 527
    Par défaut
    salut la différence majeure c'est que le daemon thread c'est un thread system ( sans doute un service installé sous Windows et un Daemon sous Linux) qui permet le mécanisme du ramasse-miettes et que le programmeur ne peut pas toucher.
    Il tourne en tâche de fond
    Un thread utilisateur c'est un thread que le programmeur lance au sein du programme par exemple pour lancer une imprimante.

  3. #3
    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
    En fait non.

    Un thread deamon est un thread qui n’empêche pas la JVM de se terminer. Et oui le GC est un thread deamon, mais ca n’empêche pas qu'il t'es possible de créer un tread deamon via setDeamon(true) ce qui permet entre autres de faire du monitoring ou des operations non-critiques (qui souffrent pas d’être interrompues par la fermeture de la JVM).

    Il faut voir ca dans le sens :
    • ton thread deamon tourne mais le thread principal de la JVM a fini sa dernière ligne d’instructions : la JVM se termine, tuant le thread demon au passage.
    • ton thread utilisateur tourne mais le thread principal de la JVM a fini sa dernière ligne d’instructions : la JVM tournera tant que le thread utilisateur est pas fini. Un gros exemple est un programme Swing qui continue a tourner car le thread EDT est toujours actif quand on ferme la dernière fenêtre active sauf si on l'a configuré explicitement pour quitter la JVM.
    • Et effectivement si tu termines explicitement la JVM, tout s’arrête dans tous les cas.
    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. c'est quoi la difference entre "tant que" et "repeter tant que"
    Par nitch01 dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 04/11/2009, 09h45
  2. c'est quoi le lien entre UML et les SGBDR ?
    Par crypto_ dans le forum UML
    Réponses: 4
    Dernier message: 15/02/2009, 12h21
  3. c'est quoi la différence entre
    Par deubelte dans le forum Visual C++
    Réponses: 1
    Dernier message: 12/06/2008, 11h07
  4. Réponses: 3
    Dernier message: 30/01/2007, 14h33
  5. C'est quoi la difference entre Tomcat et Apache?
    Par jlassira dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 10/08/2006, 10h46

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