domingo, 13 de noviembre de 2016

Threads o Hilos en Java

La principal función de los hilos es poder ejecutar diferentes procesos al mismo tiempo. Existen dos métodos para programar un hilo, ya sea heredando la clase Thread o implementando la interfaz Runnable:

Por ejemplo, en el método de herencia la clase del proceso seria:

public class Proceso extends Thread{
    public Proceso(){

        super();
    }
    public void run(){
    }
}


y la clase principal desde donde se llamaran y ejecutaran todos los procesos seria:

public class Principal{
    public static void main(String[]args){
        Proceso proceso1 = new Proceso();
        Proceso proceso2 = new Proceso();

        proceso1.start();
        proceso2.start();
    }
}

En la clase Proceso tenemos el método constructor desde el que se inicializan todos los atributos de la clase y en la clase Principal dentro del método main hacemos una instancia a la clase Proceso desde donde llamaremos al método start.

La segunda opción es muy parecida, el ejemplo seria:

public class Proceso implements Runnable{
    public Proceso(){
     
    }

    public void run(){
 
    }
}

y para ejecutar este proceso:

public class Principal{
    public static void main(String[]args){
        Proceso proceso1 = new Thread(new Proceso());
        Proceso proceso2 = new Thread(new Proceso());

        proceso1.start();
        proceso2.start();
    }
}

Como podemos ver no hay mucha diferencia en cuanto al código de ambos ejemplos, aunque al momento de realizar un sistema con diferentes procesos en paralelo podemos notar que el segundo ejemplo es mas eficiente ya que no se realiza la herencia.

No solo se pueden realizar estos procesos, sino que existen muchos métodos útiles para la clase Thread como sleep que  provoca que el intérprete ponga al hilo en curso a dormir durante el número de mili segundos, los métodos suspend y resume que pausan y reanudan los procesos. Es decir que existen muchas maneras de aplicar hilos en un programa

Finalmente podemos concluir que los hilos son una herramienta muy útil en algunos casos, sin embargo es necesario conocer los requerimientos para poder utilizarlos de una manera correcta y eficiente.

Fuentes

http://jarroba.com/multitarea-e-hilos-en-java-con-ejemplos-thread-runnable/

http://codigoprogramacion.com/cursos/java/133-uso-de-hilos-o-threads-en-java.html#.WB6RpPrhBQJ

http://dhw.umh.es/alex-bia/teaching/PC/material/hilos_tutorial-java/cap10-2.htm

http://www.chuidiang.com/java/hilos/hilos_java.php

No hay comentarios:

Publicar un comentario