Blog
Los Hilos o Threads en java son una parte fundamental en el desarrollo de software, ya que permiten que nuestro software realice varias tareas en simultaneo.
Los threads no solo son utilizados en el lenguaje Java, ya que es un concepto muy importante muchos lenguajes lo implementan.
¿Qué pasaría si programamos un chat y queremos escribir y recibir mensajes al mismo tiempo? La solución se podría llevar a cabo realizando dos threads y que cada uno realice su trabajo de manera independiente.
Crear un thread en java es muy fácil, solo basta con crear una clase que herede de Thread y luego definir el método run. Luego crear una instancia de la clase e invocar al método start(). Al ejecutar ese método se realizará la tarea definida en el run() de manera asíncrona.
Ejemplo de Threads en java
Ahora vamos a ver un ejemplo sencillo donde tenemos un thread que imprime números pares o impares, el código sería el siguiente:
public static class ImprimirNumeros extends Thread{ private int numero = 0; public ImprimirNumeros(boolean pares) { if(pares) this.numero = 0; else this.numero = 1; } @Override public void run() { while(true){ try { //Se duerme 2 segundos Thread.sleep(2000); System.out.println(numero += 2); } catch (InterruptedException e) { } } } }
En el código anterior tenemos la clase ImprimirNumeros que hereda de Thread y su método run() que imprime infinitamente (usando un while) cada 2 segundos un número par o impar dependiendo del boolean pasado por parámetro al constructor. Si el boolean es true serán los pares, caso contrario los impares.
Para poder probar este thread vamos a realizar el siguiente código dentro del método main:
public static void main(String[] args) { new ImprimirNumeros(true).start(); new ImprimirNumeros(false).start(); }
Al ejecutar ese código podemos ver cómo se imprimen los números pares e impares al mismo tiempo y sin un orden específico, ya que para que se ejecute el segundo thread no hace falta que termine la ejecución del primero. Por ejemplo un posible resultado podría ser:
3
2
4
5
6
7
9
8
10
Bueno, espero que se haya comprendido el concepto de threads en java y recuerden que esto se puede aplicar en cualquier lenguaje de programación.