JAVA ©
Día 8
Thread
Un hilo es un proceso en ejecució n independiente al
proceso actual y controlado por el planificador de
tareas del sistema operativo.
En java, un hilo tiene un método llamado run el cual
debemos sobre escribir o implementar. Este método el
có digo que el hilo ha de ejecutar.
Pero no debemos invocar el método run, debemos
utilizar el método start del hilo para arrancar el hilo.
Ciclo de vida de un hilo
Probemos el có digo de la clase ThreadLife.java
Clase Thread
La primera forma de crear un hilo es heredar de la clase Thread,
debemos sobre escribir el método run por el có digo que deseamos
ejecutar en este hilo.
public class MiHilo extends Thread
{
@Override
public void run( ) {
//nuestro có digo
}
}
Revisemos el có digo de la clase ThreadExample1.java
Interface Runnable
La segunda forma de crear un hilo es crear una clase
que implemente la interface Runnable y utilizar el
constructor de la clase Thread que acepta un Runnable
como argumento.
new Thread(new RunnableObject).start( );
Revisemos el có digo de la clase ThreadExample2.java
synchronized
Observa la salida de la clase ThreadExample3.java
¿Porqué sale ese resultado?
La respuesta es sencilla, los hilos son controlados por el
planificador de tareas del sistema operativo y trata de
distribuir el tiempo del procesador equitativamente y
de acuerdo a las prioridades (y un montó n de
algoritmos que determinan que tarea realizar).
Prioridad
A los hilos se les puede asignar prioridades que influyen en
los algoritmos del planificador de tareas para darle tiempo
de procesador a un hilo. No es una garantía pero un hilo con
prioridad mas alta obtendrá un tiempo mayor en el
procesador que uno de baja prioridad.
Para establecer la prioridad, debemos utilizar el método
setPriority de la clase Thread. La prioridad suele estar
entre 1 y 10 siendo 5 la prioridad por default.
Prueba varias veces la clase ThreadExample4.java