Diferencia entre revisiones de «Programación en Vala/Funcionalidades avanzadas del lenguaje»

Contenido eliminado Contenido añadido
Sigmar (discusión | contribs.)
Sigmar (discusión | contribs.)
Línea 681:
[[Archivo:Doubly linked list insert after.png]]
 
Cada flecha representa un enlace a un objeto de la lista doblemente enlazada. Se puede ver como en el ejemplo cada vez que se asigna el objeto a un enlace se aumenta el contador de referencias. Al finalizar todos las asignaciones de los objetos se deben obtener un contador de referencias de dos para cada nodo. Cuando se finalice el uso de los nodos éstos se eliminará la referencia a ellos, por lo que el contador de referencias se valdrá 1 y no 0 por lo que la memoria que ocupan no será liberada. En este caso el programa finalizará y el trabajo que no ha realizado el programa (liberar esos recursos) lo hará el sistema operativo. Sin embargo que pasaría si el programa fuera algo así:
Cada flecha representa un enlace a un objeto de la lista doblemente enlazada
 
<source lang=csharp>
void main () {
while (true) {
var a = new Node ();
var b = new Node (a);
var c = new Node (b);
Thread.usleep (1000);
}
}
</source>
 
== Propiedad de las referencias ==