Clase Thread - docencia de la ETSIT-URJC

Clase Thread - docencia de la ETSIT-URJC Clase Thread - docencia de la ETSIT-URJC

docencia.etsit.urjc.es
from docencia.etsit.urjc.es More from this publisher
15.05.2013 Views

Ejemplo simple public class Pila { } int idx = 0; char [] data = new char[6]; public void poner(char c) { } data[idx] = c; idx++; public char quitar() { } idx--; return data[idx];

Ejemplo El problema con el ejemplo anterior se reproduce cuando dos o más hilos acceden a los métodos poner y quitar de forma descontrolada. Debemos evitar que mientras un hilo intenta poner (quitar) el otro realice una operación que altere los datos. public class Pila { ... ... } public void poner(char c) { } synchronized (this) { data[idx] = c; idx++; }

Ejemplo simple<br />

public c<strong>la</strong>ss Pi<strong>la</strong> {<br />

}<br />

int idx = 0;<br />

char [] data = new char[6];<br />

public void poner(char c) {<br />

}<br />

data[idx] = c;<br />

idx++;<br />

public char quitar() {<br />

}<br />

idx--;<br />

return data[idx];

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!