-
memoire et threads
Salut je me pose une question à propos de certaines de mes applications qui utilisent un thread et une boucle infini(comme par exemple une application de serveur de sockets).
Est-ce que mon threads continue a tourner, ou s'arrête t-ils dés que je quitte l'application (en fermant la fenêtre du navigateur par exemple) ?
Merci.
-
une application java se termine dans une des cas suivant:
Appel à System.exit();
Lorsqu'il n'y a plus aucun thread non-daemon en fonctionnement
crash de la JVM (rare)
kill extérieur
Donc si ton thread serveur est un thread avec setDaemon(true), il n'empechera pas la JVM de s'arrêter.
Reste la problématique du thread de l'EDT qui sert à afficher tes fenetres. celui-ci n'est pas un daemon thread, donc il empeche la JVM de quitter. Pour quitter une application quand on ferme un fenetre il faut faire sur la fenetre
Code:
setDefaultcloseOperation(EXIT_ON_CLOSE)
-
En fait je veux que mon thread s'arrête, notamment dans une de mes routines de tchat, j'utilise un thread en boucle infini, c'est une routine de serveur de sockets, et j'ai peur que celui ci ne s'arrête jamais ce qui pourrait devenir ennuyeux a la longue.
-
si il est daemon, il n'empechera pas la JVM de s'arrêter.