-
fin de vie d'un thread
Bonjour,
voilà j'aimerai que mes threads signalent leur mort avant de mourir.
J'aimerai ne pas écrire l'envoi de message correspondant dans la méthode run().
Quelle méthode dois-je surcharger?
J'ai tenté finalize mais je n'ai pas obtenu ce que j'attendais...
Merci d'avance
-
Normalement il suffirait de mettre ça en dernière instruction du run().
Pour quelle raison cela te pose-il problème?
-
Bah oui je sais.
Au final c'est ce que j'ai fait.
Maintenant, je me demandais, mon thread, au final il va bien être détruit par appel de finalize() non?
J'aimerai quand même appeler ma méthode mort() ailleurs que dans run().
C'est juste pour le fun je dirai.
Sauf que j'arrive pas à appeler mort dans finalize()...
-
Afficher cela dans le finalize() n'est pas une bonne idée.
Il faut distinger le thread lui-même de l'objet Thread qui permet de le manipuler. Après la fin du run(), l'exection du thread est terminée, mais l'objet qui sert a le manipuler continue à exister tant qu'il reste des référence sur lui même.
Et même lorsqu'il n'y aura plus de références à cet objet, il n'y a pas moyen de savoir précisément quand le garbage collector le détruira réellement.