11.05.2013 Views

Java Threads (Hilos en Java) - Universidad de Salamanca

Java Threads (Hilos en Java) - Universidad de Salamanca

Java Threads (Hilos en Java) - Universidad de Salamanca

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Java</strong> <strong>Threads</strong> (<strong>Hilos</strong> <strong>en</strong> <strong>Java</strong>)<br />

try {<br />

wait();<br />

} catch (InterruptedException e) {<br />

}<br />

}<br />

cont<strong>en</strong>ts = value;<br />

available = true;<br />

notify();// lo notifica al Productor<br />

// El productor libera el monitor<br />

}<br />

public synchronized int get() {<br />

// El consumidor adquier el monitor<br />

while (available == false) {<br />

try {<br />

wait(); // espera que el Productor invoque a<br />

notify ()<br />

} catch (InterruptedException e) {<br />

}<br />

}<br />

available = false;<br />

notify(); return cont<strong>en</strong>ts;<br />

// el Consumidor libera el monitor<br />

}<br />

8. <strong>Hilos</strong> Demonio (Daemon)<br />

Un proceso <strong>de</strong>monio es un proceso que <strong>de</strong>be ejecutarse continuam<strong>en</strong>te <strong>en</strong> modo background<br />

(<strong>en</strong> segundo plano), y g<strong>en</strong>eralm<strong>en</strong>te se diseña para respon<strong>de</strong>r a peticiones <strong>de</strong> otros procesos a<br />

través <strong>de</strong> la red. La palabra “daemon” (prov<strong>en</strong>i<strong>en</strong>te <strong>de</strong> la palabra griega “ghost”) es propia <strong>de</strong><br />

UNIX, pero no se utiliza <strong>de</strong> este mismo modo <strong>en</strong> Windows. En Windows NT, los <strong>de</strong>monios se<br />

d<strong>en</strong>ominan “servicios”. Cuando los servicios ati<strong>en</strong>d<strong>en</strong> peticiones, se conoc<strong>en</strong> como la parte<br />

“Servidor” <strong>de</strong> una arquitectura Cli<strong>en</strong>te/Servidor.<br />

Los hilos <strong>de</strong>monio también se llaman servicios, porque se ejecutan, normalm<strong>en</strong>te, con<br />

prioridad baja y proporcionan un servicio básico a un programa o programas cuando la actividad<br />

<strong>de</strong> la máquina es reducida. Un ejemplo <strong>de</strong> hilo <strong>de</strong>monio que está ejecutándose continuam<strong>en</strong>te es<br />

el recolector <strong>de</strong> basura (garbage collector). Este hilo, proporcionado por la Máquina Virtual<br />

<strong>Java</strong>, comprueba las variables <strong>de</strong> los programas a las que no se acce<strong>de</strong> nunca y libera estos<br />

recursos, <strong>de</strong>volviéndolos al sistema.<br />

Un hilo pue<strong>de</strong> fijar su indicador <strong>de</strong> <strong>de</strong>monio pasando un valor true al método<br />

setDaemon(). Si se pasa false a este método, el hilo será <strong>de</strong>vuelto por el sistema como un<br />

hilo <strong>de</strong> usuario. No obstante, esto último <strong>de</strong>be realizarse antes <strong>de</strong> que se arranque el hilo con el<br />

método start().<br />

22

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

Saved successfully!

Ooh no, something went wrong!