|
Recolector De Basura En Java
RECOLECTOR DE BASURA
Java los usa periódicamente para liberar memoria ocupada por objetos qu no se van a usar mas. Es un barredor de marcas que escanea dinámicamente la memoria buscando objetos, marcando los que fueron referenciados. Después de investigar todos los posibles paths de los objetos, los que no estan marcado (o sea, no estan referenciados) son reconocidos como basura y se borran.
El colector de basura funciona en un thread (hilo) de baja prioridad y funciona tanto sincronía como asincrónicamente dependiendo de la situación y del sistema en el que se este ejecutando el entorno java.
Se ejecuta sincrónicamente cuando el sistema funciona fuera de memoria o en respuesta a una petición de un programa Java. Un progrma Java le puede pedir que se ejecute en cualquier momento mediante una llamada a System.gc().
OJO pedir que se ejecute el recolector no garantiza que los objetos sean recolectados.
En sistemas que permiten que el entorno de la ejecución Java note cuando un thread ha empezado a interrumpir a otro thread (como Windows 95/NT), el recoledto de basura de Java funciona asincrónicamente cuando el sistema esta ocupado. Tan pronto como otro thread se vuelva activo, se va a pedir al recolector de basura que obtenga un estado consistente y termine.
|