Manejo de Hilos en Java – Tutorial

Manejo de Hilos en Java – Tutorial

En este pequeño tutorial veremos como manejar diferentes procesos en Java utilizando Hilos mediante la clase Thread. Un Thread es un hilo de ejecucion en un programa en java, el cual permite tener multiples instancias de hilos corriendo de forma simultanea en una aplicacion. Los hilos tienen un valor denominado prioridad, el cual puede pedir a java que en una situacion en que tenga que elegir cual proceso ejecutar inclinarse por uno u otro hilo, por default los hilos en java se inicializan con la misma prioridad.

En java existen dos formas distintas de crear un nuevo hilo, heredando de la clase Thread o implementando la Interfaz Runnable. Si utilizamos la opcion de implementar la interfaz Runnable, mas tarde tendremos que utilizarlo de parametro en una nueva instancia de la clase Thread para inicializarlo. Veamos un Ejemplo utilizando estas dos formas de crear hilos en java, se crearan dos hilos, uno creado heredando de la clase Thread y otro implementandolo de la interfaz Runnable, tambien veremos la forma de inicializarlos y el resultado al ejecutarlo, Veamos.

Logo Java

  • CODIGO

Clase Main

public class Main {
    public static void main(String args[]){
        //Creamos el hilo 1 que hereda de la clase Thread
        Hilo1 hilo1 = new Hilo1();
        //Creamos el hilo 2 que implementa la clase Runnable
        Hilo2 hilo2 = new Hilo2();

        /*
         * Establecemos prioridad 
         * (podemos jugar con valores de 1 y 10
         * y veremos cual proceso termina primero
         * y cual segundo dependiendo de el valor
         * que asignemos aqui.
        */
        hilo1.setPriority(10);

        //iniciamos los procesos
        hilo1.start();
        new Thread(hilo2).start();        
    }
}

Clase Hilo1

public class Hilo1 extends Thread{

    public Hilo1(){
        System.out.println("Iniciando el hilo 1");
    }

    @Override
    public void run(){
        for(int i=0;i<1000;i++){
            System.out.println("Hilo1: "+i);
        }
    }
}

Clase Hilo2

public class Hilo2 implements Runnable{

    public Hilo2(){
        System.out.println("Iniciando el hilo 2");
    }

    @Override
    public void run() {
        for(int i=0;i<1000;i++){
            System.out.println("Hilo2: "+i);
        }
    }
}
  • CONCLUSION

Como podemos ver las 2 formas de crear hilos en java funciona correctamente y son igual de facil de implementar, el metodo setPriority recibe como parametro el valor que queremos darle de prioridad al proceso en si, como valor maximo es 10 y como valor minimo es 1. Al cambiar este valor podemos ver reflejado el cambio en el orden en que termina de ejecutarse uno u otro hilo debido a la prioridad que se maneje. El uso correcto de hilos en java optimiza nuestros programas al trabajar de mejor manera el uso de recursos del sistema.