Los Hilos o los “Threads”
en Java, son básicamente una forma de poder ejecutar varios
procesos simultáneamente en nuestros programas en Java.
Usualmente para poder
utilizarlos tenemos que crear clases que extienden a la clase Thread, y
reescribir el método principal “run()”, el cual es el que se va a ejecutar
principalmente al iniciar un hilo, thread o nuevo proceso en java.
·
La finalización depende del hilo (Thread.suspend,
stop están depreciados)
·
Los hilos implementan prioridad y mecanismos de
sincronización
·
Cualquier clase se puede hacer hilo.
Ciclo de Vida
Un thread puede pasar por varios estados durante su
vida.
- Ejecutándose
- Pausado o Parado
- Muerto
Existen distintos métodos que provocan las
transiciones entre estos estados.
Crear un Thread
•
Para
crear un Thread hay que instanciarlo llamando al constructor como en el resto
de clases.
•
Dependiendo
de cómo hayamos implementado el thread se actuará de una forma u otra:
Si hereda de la clase java.lang.Thread, simplemente se
instancia nuestra clase.
Si implementa el interfaz java.lang.Runnable, se
instancia la clase java.lang.Thread pasándole como parámetro del constructor
una instancia de nuestra clase.
Arrancar un thread
•
Para
arrancar un thread hay que llamar al método start()
•
El
método start() registra al thread en el planificador de tareas del sistema y
llama al método run() del thread.
•
Ejecutar
este método no significa que de forma inmediata comience a ejecutarse. Esto ya
dependerá del planificador de tareas (Sistema Operativo) y del número de
procesadores (Hardware)
Pausar un thread
Existen
distintos motivos por los que un thread puede detenerse temporalmente su
ejecución o lo que es lo mismo, pasar a un estado de pausa.
·
Se llama a su
método sleep(). Recibe un long con el número de milisegundos de la pausa.
·
Se llama al
método wait() y espera hasta recibir una señal (notify) o cumplirse un timeout
definido por un long con el número de milisegundos.
·
Se realiza
alguna acción de entrada/salida.
·
Se llama al método yield(). Este método saca del
procesador al thread hasta que el sistema operativo lo vuelva a meter.
Reanudar un thread
Existen distintos motivos por los que un
thread puede reanudar su ejecución:
·
Se
consumen los milisegundos establecidos en una llamada al método sleep.
·
Se
recibe una llamada (notify) o se consumen los milisegundos en una llamada al
método wait.
·
Se
termina alguna acción de entrada/salida.
Terminar un
thread
- Un thread, por defecto, termina cuando
finaliza la ejecución de su método run().
- En las primeras versiones de JDK existía
el método stop(). Pero con el tiempo se deprecó (deprecated)
desaconsejando su uso.
- La manera correcta de terminar un thread
es conseguir que finalice la ejecución del método run() mediante la
implementación de algún tipo de bucle gobernado por una condición controlable.
- El método System.exit() termina la JVM,
terminando también todos los threads.
Webgrafía:
Santamaria, R. (s/F). Hilos en Java. [En línea] Recuperado de: vis.usal.es/rodrigo/documentos/aso/JavaHilos.pdf
{Octubre 14, 2016}
Zelada, C. (2007). Hilos en Java. [En línea] Recuperado de: www.adictosaltrabajo.com/tutoriales/enterprisearchitectuml2-x/
{Octubre 14, 2016}
Villalobos,
J. (2007). Uso de Hilos o Threads en
Java. [En línea] Recuperado de: www.adictosaltrabajo.com/tutoriales/enterprisearchitectuml2-x/
{Octubre 14, 2016}








Muy bien......
ResponderEliminar