domingo, 8 de enero de 2012

Lenguaje Java - Threads

Hilos en Java (Threads)

Bueno, me tomé un tiempo para arreglar unos asuntos con mi carrera, pero ya estoy de regreso, el tema de hoy es un tema muy importante para la programación avanzada, en muchos casos nos es útil o necesario realizar procesos en parelelo, pero hasta ahora solo podíamos hacerlos consecutivamente 1 tras otro, pero los lenguajes de programación actuales tienen un sistema de "hilos" de procesos,  que manejan una serie distintas de procedimientos y se pueden ejecutar y detener según nuestras necesidades.

En java usaremos la clase Runnable

Al declarar una clase que va usar un hilo, tenemos que hacerla implementar ( sobreescribir el método run), para lograrlo, primero tenemos que poner import Runnable:

public class Test implements Runnable{

 public static void main(String args[]){

}

}

Una vez hecho esto ya tenemos que escribir el método run() en el cual tendremos que poner el código que queremos que se ejecute en paralelo.

public class Test implements Runnable{
 int i=0;
public Test(){
}

 public static void main(String args[]){
 
}

public void run(){

 i=i+1;

}

}

Para empezar a ejecutar el método run, debemos tener un objeto Thread ( hilo ), en este caso lo pondré como atributo, lo inicializaré en el main y le pondré a correr el método run.

public class Test implements Runnable{
 int i=0; // contador desde 0

Thread hilo; // el hilo

public Test(){
                               t.hilo=new Thread(this);  // se inicializa el hilo
                               hilo.start();
// se empieza el hilo ( llamamos al método run)

}

 public static void main(String args[]){
     Test t=new Test();            // llamamos al constructor                 
      
    while(true){  // este es el while-true normal, con el main

      System.out.println("_________________");
    }


}

public void run(){  // método run del hilo

 while(true){  // este es el while-true en paralelo , lo logramos en el método run del hilo



 i=i+1; // lo que hace este método es ir sumando la variable "i" e imprimiéndola infinitamente

System.out.println(i);


 }
}

}

Con el ejemplo anterior logramos hacer 2 bucles infinitos (while-true) en paralelo, lo cual nos es muy útil en determinadas situaciones, y por cada clase que creemos tedríamos otro proceso en paralelo para agregar, los threads o hilos se usan mucho en sistemas de comunicacion, dispositivos, actualizaciones rápidas, conteos, etc.

No hay comentarios:

Publicar un comentario