décrementation de variables statique à la destruction - Java - Programmation
Marsh Posté le 15-02-2005 à 13:59:23
si c'est un compteur exact, il te faut ajouter une méthode destroy() ou close() explicitement à tes objets.
Si c'est pour surveiller la consomation mémoire, mets le décrément dans finalize() synchronized.
Marsh Posté le 15-02-2005 à 14:04:46
Marsh Posté le 15-02-2005 à 15:27:50
nraynaud, pkoi synchronized ? le GC est multithreadé ?
edit : d'ailleur quand tu dis sychronzed, tu veux synchronizer sur quel objet ? parce que sur l'instance ca a pas de sens si ce qu'il faut modifier c'est une variable static ... synchronized sur la classe de l'objet ?
Marsh Posté le 15-02-2005 à 17:16:04
le finalize est exécuté depuis son propre thread.
synchronisé sur this.getClass() (mais en fait, ce doivent être les méthodes statiques de comptage/décomptage qui doivent être synchronisées).
Marsh Posté le 15-02-2005 à 17:19:47
qu'est ce que tu veux dire par "depuis son propore thread" ? son propre thread à qui ? quel thread ? pas celui du GC ?
Marsh Posté le 15-02-2005 à 17:25:35
le thread d'exécution des fonctions finalize.
on l'appelle le "finalization thread" c'est un thread très méchant, on a quasiment jamais revu les objets qui ont eu affaire à lui, seul quelques survivants on pu en réchapper, il parraît qu'il ont reçu de ce réchappement le statut de demi-dieux, et que le méchant thread ne les embêtera plus jamais.
Mais tout ça c'est des rumeurs, moi je suis caché, j'ai ma fonction stop() toute prête, il parraît qu'il faut pas lui faire confiance, mais j'y crois ...
[ce message est la dernière trace de cet objet vivant]
Marsh Posté le 15-02-2005 à 17:33:14
Reply
Marsh Posté le 15-02-2005 à 13:54:41
Bonjour,
Je voulais faire un compteur d'instance d'objet. En C++ c'est faisable aisément au destructeur
~Myobj() { cpt-- ; }
Cela dit, j'ai entendu dire que
Existe-t-il donc une solution propre ?
Merci
---------------
What if I were smiling and running into your arms? Would you see then what I see now?