Java Threads (Hilos en Java) - Universidad de Salamanca
Java Threads (Hilos en Java) - Universidad de Salamanca
Java Threads (Hilos en Java) - Universidad de Salamanca
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 />
...}<br />
if( tarea != null )<br />
tarea.run() ;<br />
}<br />
Se <strong>de</strong>duce, por tanto, que la propia clase Thread <strong>de</strong> <strong>Java</strong> también implem<strong>en</strong>ta la interfaz<br />
Runnable. Observamos que <strong>en</strong> el método run <strong>de</strong> Thread se comprueba si la clase con que<br />
se está trabajando <strong>en</strong> ese mom<strong>en</strong>to (tarea), que es la clase que se pret<strong>en</strong><strong>de</strong> ejecutar como hilo,<br />
es o no nula. En caso <strong>de</strong> no ser nula, se invoca al método run propio <strong>de</strong> dicha clase.<br />
4. Estado y Control <strong>de</strong> <strong>Hilos</strong><br />
4.1. Estados <strong>de</strong> un Hilo<br />
El comportami<strong>en</strong>to <strong>de</strong> un hilo <strong>de</strong>p<strong>en</strong><strong>de</strong> <strong>de</strong>l estado <strong>en</strong> que se <strong>en</strong>cu<strong>en</strong>tre, este estado <strong>de</strong>fine su<br />
modo <strong>de</strong> operación actual, por ejemplo, si esta corri<strong>en</strong>do o no. A continuación proporcionamos<br />
la relación <strong>de</strong> estados <strong>en</strong> los que pue<strong>de</strong> estar un hilo <strong>Java</strong>.<br />
• New<br />
• Runnable<br />
• Not running<br />
• Dead<br />
New<br />
Un hilo esta <strong>en</strong> el estado new la primera vez que se crea y hasta que el método start es<br />
llamado. Los hilos <strong>en</strong> estado new ya han sido inicializados y están listos para empezar a trabajar,<br />
pero aún no han sido notificados para que empiec<strong>en</strong> a realizar su trabajo.<br />
Runnable<br />
Cuando se llama al método start <strong>de</strong> un hilo nuevo, el método run es invocado y el hilo <strong>en</strong>tra<br />
<strong>en</strong> el estado runnable. Este estado podría llamarse “running” porque la ejecución <strong>de</strong>l método<br />
run significa que el hilo esta corri<strong>en</strong>do. Sin embargo, <strong>de</strong>bemos t<strong>en</strong>er <strong>en</strong> cu<strong>en</strong>ta la prioridad <strong>de</strong><br />
los hilos. Aunque cada hilo está corri<strong>en</strong>do <strong>de</strong>s<strong>de</strong> el punto <strong>de</strong> vista <strong>de</strong>l usuario, <strong>en</strong> realidad todos<br />
los hilos, excepto el que <strong>en</strong> estos mom<strong>en</strong>tos esta utilizando la CPU, están <strong>en</strong> el estado runnable<br />
(ejecutables, listos para correr) <strong>en</strong> cualquier mom<strong>en</strong>to dado. Uno pue<strong>de</strong> p<strong>en</strong>sar conceptualm<strong>en</strong>te<br />
<strong>en</strong> el estado runnable como si fuera el estado “running”, sólo t<strong>en</strong>emos que recordar que todos<br />
los hilos ti<strong>en</strong><strong>en</strong> que compartir los recursos <strong>de</strong>l sistema.<br />
Not running<br />
El estado not running se aplica a todos los hilos que están parados por alguna razón. Cuando un<br />
hilo está <strong>en</strong> este estado, está listo para ser usado y es capaz <strong>de</strong> volver al estado runnable <strong>en</strong> un<br />
mom<strong>en</strong>to dado. Los hilos pued<strong>en</strong> pasar al estado not running a través <strong>de</strong> varias vías.<br />
6