Hilos Java
Los sistemas actuales son capaces de realizar
más de una tarea a la vez y los usuarios cada día demandan de más capacidad y
velocidad en las tareas. Con los hilos podemos lograr correr más de una sola
tarea a la vez. Un ejemplo que podríamos mencionar es el enviar un correo
mientras el sistema está recibiendo otros correos electrónicos. No suena muy
eficiente tener que esperar enviar el correo para poder recibir los correos que
nos están enviando.
Ahora si vemos algún ejemplo en el entorno de
la computación que difícil seria usar un navegador de internet y tener que
esperar mientras descargamos un video, película o imagen para poder continuar
navegando. Por suerte actualmente podemos dar clic en descargar y mientras esa
descarga termina podemos continuar navegando en internet. Esta es la idea que
deseamos desarrollar, tener la posibilidad que nuestro sistema pueda estar
haciendo varias tareas al mismo tiempo.
Ahora vamos a ver un ejemplo muy simple de cómo
crear un hilo.
Lo primero que debemos hacer es heredar de la
clase Thread o implementar la interfaz Runnable. Al final van a trabajar muy
similar, pero se implementar un poquito diferente. Es importante también
estudiar el ciclo de vida de un hilo, en este post no lo vamos a describir, pero
pueden buscarlos en internet para que entiendan mejor cómo se comportan los
hilos.
Vamos a iniciar utilizando la interfaz
Runnable. Entonces tenemos que agregar una clase normal que desarrollamos en
Java. Cuando tenemos esta clase lista vamos a implementar la interfaz Runnable
que nos va a permitir desarrollar el hilo.
Para este ejemplo vamos a crear un pequeño
cronometro, entonces debemos crear un proyecto llamado timer. Cuando tenemos el
proyecto listo vamos a crear una clase llamada TimerControl.
Se debe de implementar la interfaz Runnable.
Cuando ya tenemos esto listo debemos sobrescribir el método run que se encarga
de ejecutar el código que tenemos en paralelo. Además de esto debemos recordar
que el hilo se va a encontrar vivo mientras el método run se encuentre
corriendo.
En nuestro ejemplo necesitamos enviar un JLabel
para poder mostrar como los números se van actualizando en el sistema por medio
del hilo.
Para poder implementar el hilo con Runnable
vamos a requerir hacer una variable de tipo Thread que se va a encargar de
ejecutar el hilo. Esta variable se debe inicializar y se le tiene que pasar por
parámetro el hilo que queremos que se ejecute.
Ahora lo que se debe hacer es invocar el método
start que tenemos en la clase Thread. Por medio de este método se va hacer el
llamado al método run que sobrescribimos en la clase TimerControl.
Antes de correr nuestra aplicación vamos a
agregar un método sleep. Este método sleep nos permite detener el hilo por un
tiempo antes que se debe dar en milisegundos. Cuando este tiempo se termina
nuestro programa continúe corriente hasta salid del método run. En nuestro caso
vamos a dejarlo con un ciclo infinito para que continúe nuestro cronometro.
Tenemos que tener presente que a la hora de
llamar el método sleep debemos agregar un try/catch por cualquier posible error
que este genere.
Luego vamos a tener una clase grafica llamada
MainWindow que se va a encargar de agregar el label y donde vamos a llamar
nuestro Hilo
Como podemos ver en las líneas 19 se crear un
objeto de tipo Thread donde vamos a pasar en el constructor un objeto de tipo
TimerControl. A este se le debe pasar también el Label que vamos a usar para
actualizar nuestro cronometro.
Después en la línea 20 simplemente ejecutamos
el método start para poder correr nuestro hilo.
Ya estamos listos para correr nuestro programa
y vamos a ver que esta muestra el tiempo en nuestra pantalla.
Este solo muestra el contador incrementando, se
ve muy simple pero ya tenemos una forma de implementar hilos en Java
Etiquetas: Java
0 comentarios:
Publicar un comentario
Suscribirse a Enviar comentarios [Atom]
<< Inicio