Crear nuestro propio hilo en Java

Hola a todos, hoy os traigo como podemos crear nuestro propio hilo en Java, empezando así con el multitheading.

Lo primero tenemos que saber que es un hilo. Hasta ahora, todos los programas que hemos ejecutado son un único hilo, pero podemos crear varias ejecuciones simultáneas, de forma que podemos ejecutar varios códigos a la vez.

La clase encargada de los hilos en java es Thread. Para crear nuestro propio hilo lo único que deberemos hacer es crear una clase y que esta herede de la clase Thread, por ejemplo:

public class Saludador extends Thread {
    
}

Esta clase podemos personalizarla a nuestro gusto.

Tenemos que escribir un método que se sobrescribirá, run

Veamos un ejemplo


public class Saludador extends Thread {
    
    
    @Override
    public void run(){
        
    }
}

Lo que este dentro de run será lo que se ejecuta al iniciar el hilo, digamos que es su main.

Para iniciar un hilo, tenemos que crear un objeto de la clase que hereda de Thread y llamar al método start().

Veamoslo en accion:

—Clase Saludador


public class Saludador extends Thread {
    
    @Override
    public void run(){
        System.out.println("Hola, soy un hilo");
    }
}

—Clase ejecutable


public class EjemploThread {
    public static void main(String[] args) {

        Saludador saludo1 = new Saludador();
        Saludador saludo2 = new Saludador();
        Saludador saludo3 = new Saludador();

        saludo1.start();
        saludo2.start();
        saludo3.start();

    }
}

Este es el resultado de la ejecución:

Para crear hilos, tambien se puede hacer de esta manera:


public class Saludador implements Runnable {
    
    @Override
    public void run(){
        
    }
}

Si lo hacemos de esta manera, nos obligará a crear el método run.

Por último, os recomiendo hacer lo siguiente para hacer un seguimiento de los hilos, ya que no se ejecutaran de forma secuencial, se trata de ponerles un nombre a los hilos (solo válido para la 1º forma tratada), veamos como:

—Clase Saludador


public class Saludador extends Thread {
    
    public Saludador(String nombreHilo){
        super(nombreHilo);
    }
    
    @Override
    public void run(){
        System.out.println("Hola, soy el hilo "+super.getName());
    }
}

—Clase ejecutable


public class EjemploThread {
    public static void main(String[] args) {

        Saludador saludo1 = new Saludador("Test 1");
        Saludador saludo2 = new Saludador("Test 2");
        Saludador saludo3 = new Saludador("Test 3");

        saludo1.start();
        saludo2.start();
        saludo3.start();

    }
}

Este es el resultado:

Recordar que los hilos, por defecto, no tienen un orden de ejecución por lo que pueden ejecutarse uno antes que otro.

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Etiquetas

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *