OutOfMemoryError!

Bob
14 de Octubre del 2005
Hola gente, mi problema es el siguiente: Tengo una aplicacion que crea un hilo, dentro de este se crean una serie de objetos, etc..., y una vez que termina la accion se llama a otro hilo dentro de este. El problema esta en que "no se libera" la memoria ocupada por el anterior hilo, y tampoco se como hacerlo?. En el momento que hay 2 o 3 llamadas de este tipo la aplicacion (hilo -> hilo -> hilo ) se va a tomai viento! sale el mensaje: OutOfMemoryError, es decir, no hay memoria disponible. 驴Como diantres libero la memoria??

consultoriajava.com
14 de Octubre del 2005
Para liberar memoria haz que el objeto anteriormente referenciado quede sin ninguna referencia activa valida.

Esto se suele implementar de forma abrupta con

hilo = null;

pero existen muchas otras formas mas eficientes.

Bob
14 de Octubre del 2005
Buenas!, despues de pasarme horas y horas intentando solucionar el problema, todavia no lo consegui!, aunque algo he avanzado. No basta con poner a null el hilo, lo tengo comprobado con el siguiente ej:
Tengo un objeto, una vez cargado tengo 400.000 b (aprox) de memoria libre, lanzamos un hilo que carga una serie de objetos y al terminar la carga nos queda libre 300.000 b. Justo antes de salir(sin hacer nada mas), liberamos todos los objetos creados en el hilo y damos paso de nuevo al objeto1. Bien, deberia de tener la misma meoria con la que empezo (puesto que el hilo ya murio), pero NO, tiene 360.000 b, 驴dnde quedaron los 40.000 b que faltan?.

Para obtener estos datos de memoria tuve que usar el recolector de basura de forma explicita(Runtime.gc() ). Sino lo uso la memoria no se libera.