Bonjour,
avec un titre pareil, je suis sûr que pas mal d'entre vous m'aurais redirigé par là, seulement, c’est justement de là que je viens ...
bon, passons aux choses sérieuse.
Voilà le bout de tuto qui me chiffonne ...
Citation : tuto
Nous obtenons finalement le code suivant :
class MonThread extends Thread {
protected volatile boolean running = true;
public Monthread () {
// Mon constructeur
}
public arret() { // Méthode 2
running = false;
}
@Override
public void run() {
// Initialisation
while(running) { // Boucle infinie pour effectuer des traitements.
// Traitement à faire
if (/*Condition d'arret*/) // Méthode 1
running = false;
}
}
}
Mais voilà, en fait, cette astuce, ça fait juste terminé le code.
Mais alors, qu'entends-t-on par "fermer un thread" ? Le terminé ?
Pour moi, le code précédent ne ferme pas le Thread, il termine juste sont exécution.
Voilà un exemple concret :
Dans mon projet, quand une exception critique est levé, j'envoie quelquefois un mail de rapport d'erreur, pour que je sois averti des bugs.
Seulement, l'envoie d'un mail, c'est un peu long.
Aussi, l'envoie de ce mail, je l'effectue dans un nouveau Thread, pour ne pas géner l'exécution du programme.
Bon, tout marche impec, seulement, j'ai remarqué que le "Threade reste ouvert".
Je m'explique : pour tester, j'ai envoyé plusieurs mail dans des Thread différent. Bon, bien, seulement, après ça, il y avait 25 Thread ouvert ... Je peu le savoir grâce à Logj4 qui précise dans quel Thread on se trouve ...
Alors voilà mes questions :
Que veux-t-on dire par "fermer un Thread" ?
Est-il gênant, pour les performances surtout d'avoir plein de Thread ouverts (et inutiles).
Comment "fermer définitivement un thread" ? (vous me comprenez je crois )
Merci d’avance.
un modérateur pouvait passer par là ...
Utilise un pool de threads. Tu peux ainsi donner une durée de vie à tes threads dans le pool, et récupérer ceux que tu as utilisé et qui sont en sleep. Va voir le package java.util.concurrent, le ThreadExecutorFactory et ExecutorService.
Merci beaucoup, je me suis documenter, j'ai eu la veine de tomber comme par hasard sur ce tuto (je l'ai vu par hasard dans la rubrique des nouveaux tutoriels).
je laisse ouvert au cas ou j'aurais des problèmes.
Merci.
Fermer ses Thread en java.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.