Voilà, j'aimerais comprendre comment Java va gérer la mémoire dans ce cas présent.
j'ai une boucle dans ma classe principale sur le "main thread" :
Ma deuxième classe :
Je voudrais savoir si je vais saturer la mémoire avec ce genre de boucle ou pas d'une part?
D'autre part, je vais écraser la variable t à chaque itération.
Est-ce que ça va me poser de problème ou pas?
Est-ce que ça va effacer prématurément mon instance de classe MyThread?
Ou est-ce que ça ne pose aucun problème?
Sinon, je peux créer un tableau de MyThread, garder une référence sur chacune des instances. Puis en fin de script run, j'appelle une méthode sur ma classe principale qui met la référence à null dans mon tableau.
Qu'en pensez vous?
D'autre part, j'aimerais savoir si mon garbage collector va être appelé ou pas. J'ai un doute, car je fais une boucle sur la main thread et j'ai peur que le gc ne soit jamais appelé...
Dois-je le forcer à s'éxécuter?
Merci
j'ai une boucle dans ma classe principale sur le "main thread" :
Bloc de code:
public class MaClassePrincipale
public MaClassePrincipale() {
while(true) {
// fait des trucs
MyThread t = new MyThread();
// fait d'autres trucs
}
}
}
public static void main(String args[]) {
new MaClasserincipale();
}
Ma deuxième classe :
Bloc de code:
public class MyThread() implement Runnable() {
public MyThread() {
this.start();
}
public void run() {
//fait des machins
}
}
Je voudrais savoir si je vais saturer la mémoire avec ce genre de boucle ou pas d'une part?
D'autre part, je vais écraser la variable t à chaque itération.
Est-ce que ça va me poser de problème ou pas?
Est-ce que ça va effacer prématurément mon instance de classe MyThread?
Ou est-ce que ça ne pose aucun problème?
Sinon, je peux créer un tableau de MyThread, garder une référence sur chacune des instances. Puis en fin de script run, j'appelle une méthode sur ma classe principale qui met la référence à null dans mon tableau.
Qu'en pensez vous?
D'autre part, j'aimerais savoir si mon garbage collector va être appelé ou pas. J'ai un doute, car je fais une boucle sur la main thread et j'ai peur que le gc ne soit jamais appelé...
Dois-je le forcer à s'éxécuter?
Merci