Professional Documents
Culture Documents
Para hablar de hilos en Java primeramente se necesita entender lo que es un hilo. Un hilo es un
proceso que se est ejecutando en un momento determinado en nuestro sistema operativo,
como cualquier otra tarea, esto se realiza directamente en el procesador. Existen los llamados
'demonios' que son los procesos que define el sistema en s para poder funcionar y otros que
llamaremos los hilos definidos por el usuario o por el programador, estos ltimos son procesos
a los que el programador define un comportamiento e inicia en un momento especfico.
En Java, el proceso que siempre se ejecuta es el llamado main que es a partir del cual se inicia
prcticamente todo el comportamiento de nuestra aplicacin, y en ocasiones a la aplicacin le
basta con este solo proceso para funcionar de manera adecuada, sin embargo, existen algunas
aplicaciones que requieren ms de un proceso (o hilo) ejecutndose al mismo tiempo
(multithreading), por ejemplo, se tiene una aplicacin de una tienda departamental de la cual se
actualizan los precios y mercancas varias veces al da a travs de la red, se verifcan los nuevos
descuentos y dems pero que a su vez es la encargada de registrar las compras y todos
movimientos que se realice con la mercanca dentro de la tienda, si se decide que dicha
aplicacin trabajar de la manera simple y con un solo proceso (o hilo), el trabajo de la
actualizacin de precios y mercancas debe de finalizar antes de que alguien pueda hacer algn
movimiento con un producto dentro de la tienda, o viceversa, ya que la aplicacin no es capaz
de mantener el proceso de actualizacin en segundo plano mientras se registra un movimiento.
Si se toma este modelo mono-hilo el tiempo y dinero que se perder dentro de la tienda ser
muchsimo mayor comparando con un modelo multi-hilo. En un modelo multi-hilo se pueden
realizar todas las actualizaciones en segundo plano mientras se registra una o ms ventas o
movimientos, cada proceso independiente del otro viviendo o ejecutndose al mismo tiempo
dentro de la misma aplicacin.
+ Un proceso en ejecucin
Una instancia de la clase java.lang.Thread, no es ms que cualquier otro objeto, con variables y
mtodos predefinidos. Un proceso en ejecucin es un proceso individual que realiza una tarea
o trabajo, tiene su propia pila de informacin independiente a la de la aplicacin principal.
* start()
* yield()
* sleep()
* run()
La accin sucede dentro del mtodo run(), digamos que el cdigo que se encuentra dentro de
dicho mtodo es el trabajo por hacer, por lo tanto, si queremos realizar diversas operaciones
cada una simultnea pero de manera independiente, tendremos varias clases, cada una con su
respectivo mtodo run(). Dentro del mtodo run() puede haber llamados a otros mtodos
como en cualquier otro mtodo comn, pero la pila de ejecucin del nuevo proceso siempre
comenzar a partir de la llamada al mtodo run().
Extendiendo java.lang.Thread:
P. ej.
}
Nuevamente, esto no es recomendable ya que al heredar la clase Thread, no podrs heredar
nada ms.
Toma en cuenta que puedes sobrecargar el mtodo run() sin ningn problema como se
muestra a continuacin...
...sin embargo, al realizar esto, no estars utilizando tu nuevo mtodo public void run (String s)
en un proceso separado, es un simple mtodo comn y corriente como cualquier otro que
tienes que mandar llamar de manera independiente ya que los hilos trabajan con un mtodo
run() sin argumentos.
P. ej.
}
Independientemente de cmo definas tu hilo (por medio de extends Thread o implements
Runnable), el hilo tendr el mismo comportamiento.
Debemos recordar que cada hilo de ejecucin es una instancia de la clase Thread,
independientemente de si tu mtodo run() est dentro de una subclase de Thread o en una
implementacin de la interfaz Runnable, se necesita un objeto tipo Thread para realizar el
trabajo.
Puedes pasar una misma instancia de una clase que implementa Runnable a diversos objetos
de tipo Thread...
El pasar un solo objeto tipo MiHilo a varios objetos tipo Thread significa que el trabajo que se
encuentra dentro del mtodo run() de MiHilo se realizar en diversas ocasiones, o lo que es lo
mismo, varios hilos realizarn el mismo trabajo.