Article View: es.comp.lenguajes.java
Article #17793Re: funcionamiento del "barrendero"
From: Juan Gonzalo de Silva Medina
Date: Thu, 19 Oct 2000 00:05
Date: Thu, 19 Oct 2000 00:05
48 lines
2846 bytes
2846 bytes
Arioch wrote:
>
> El recolector de basura de java o barrendero como lo llamas tu se ejecuta
> siempre que un objeto se sale de ambito, es similar al destructor de C++, justo
> antes del recolector si tienes creado el metodo finalize se ejecuta.
>
> Pedro wrote:
>
> > Recientemente he fallado unas cuantas preguntillas sobre el "garbage
> > collector" y es que no tengo claro c�ando se ejecuta. �Cu�ndo se pone un
> > referencia a null?�justo despu�s?�cu�ndo una referencia se le hace apuntar a
> > otro objeto?
> >
> > En resumen, me gustar�a consultar alg�n manual o autor que explique esto.
> >
> > Saludos al grupo
No s�, no s�, no creo que se exactamente como dices....
Veamos, el GC es un thread que se ejecuta aparte de tus thread de
proceso dentro de la m�quina virtual, y es invocado en dos casos
distintos: 1.- cuando ha pasado un tiempo determinado y la JVM no est�
muy ocupada. 2.- Cuando se desea obtener memoria para un crear un objeto
y no hay suficiente o queda menos que un porcentaje.
Esto es en cuanto a la invocaci�n.
En cuando a cuando un objeto es recolectado por el GC...
Un objeto es eliminado de la memeria cuando el GC tiene la seguridad de
que el objeto ha dejado de estar apuntado por alguna variable.
As�, cuando tenemos una variable que apunta a un objeto y la ponemos a
null, no tenemos ninguna garantia de que en ese mismo instante sea
borrado el objeto de la memoria (normalmente no lo es).
Lo que te puede orientar es que dado una variable que apunta a un
objeto, cuando ponemos a null la variable, lo que hacemos, a demas, es
decrementar en 1 el contadorde uso del objeto, por lo que puede llegar a
cero y cuando el GC lo estime oportuno lo elimine si su contador de uso
est� a 0.
Saludos,
--
Juan Gonzalo de Silva Medina
System.out.pritnln("I Love Linux"9;
Technical Details
Message-ID:
<39EE3AE5.A1DAF7EE@caymasa.es>Path:
arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!supernews.com!bignews.mediaways.net!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!fu-berlin.de!newsfeed.bcn.ttd.net!news.mad.ttd.net!not-for-mailReferences:
<8skasg$ipl$1@talia.mad.ttd.net> <39EDE8BC.5BCB422C@usuarios.retecal.es>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: 1116f3,65ddcaaa5ae1809f X-Google-Attributes: gid1116f3,public X-Google-ArrivalTime: 2000-10-18 17:02:59 PST Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!supernews.com!bignews.mediaways.net!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!fu-berlin.de!newsfeed.bcn.ttd.net!news.mad.ttd.net!not-for-mail From: Juan Gonzalo de Silva Medina <gonzalo@caymasa.es> Newsgroups: es.comp.lenguajes.java Subject: Re: funcionamiento del "barrendero" Date: Thu, 19 Oct 2000 02:05:57 +0200 Organization: Telefonica Transmision de Datos Lines: 48 Message-ID: <39EE3AE5.A1DAF7EE@caymasa.es> References: <8skasg$ipl$1@talia.mad.ttd.net> <39EDE8BC.5BCB422C@usuarios.retecal.es> NNTP-Posting-Host: 194.224.23.190 Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Mailer: Mozilla 4.72 [en] (X11; U; Linux 2.2.14-5.0 i686) X-Accept-Language: es, en