viernes, 19 de octubre de 2012

Creación de Threads

Alternativas de creación
En Java hay dos formas de crear nuevos threads. La primera de ellas consiste en crear una nueva clase que herede de la clase  java.lang.Thread y sobrecargar el método run() de dicha clase. El segundo método consiste en declarar una clase que implemente la interfaz java.lang.Runnable, la cual declarara el método run(); posteriormente se enviara dicho objeto a la clase Thread.

En este caso, se ha creado la clase MiClase, que hereda de Thread y después haremos lo mismo pero implementando Runnable. La principal actividad del thread, es que escriba 10 veces el nombre del thread creado.

Para poner en marcha este nuevo thread se debe llamar la método start(), heredado de la súper-clase Thread, que se encarga de llamar a run().


Creacion a través de la clase Thread
Veamos un ejemplo creando una clase que hereda de la clase java.lang.Thread:

public class MiClase extends Thread{

private String descripcion;

public MiClase (String str){

       descripcion = str;

}

@Override
public void run(){

       for(int i=0; i<10; i++)
           System.out.println(descripcion+ “: Este es el Thread ”+ getName());

}
}

Para realizar la ejecución de varios threads de la misma clase los instanciamos y luego llamamos al método start():

public class Main {

       public static void main(String [] args) {

                       MiClase m1 = new MiClase(“m1”);
                       m1.start();
                       MiClase m2 = new MiClase(“m2”);
                       m2.start();
       }
}

Creacion a través de la interfaz Runnable
A continuación se presenta el mismo ejemplo, pero esta vez implementando la interfaz Runnable en lugar de heredar de la clase Thread.

public class MiClase implements Runnable{

private String descripcion;

public MiClase (String str){

       descripcion = str;

}

@Override
public void run(){

       for(int i=0; i<10; i++)
           System.out.println(descripcion+ “: Este es el Thread ”+ getName());

}
}

Para realizar la ejecución de varios Runnables de la misma clase los instanciamos, se lo pasamos a las instancias de Threads y  luego llamamos al método start() de estos:

public class Main {

       public static void main(String [] args) {

                       MiClase m1 = new MiClase(“m1”);
                       Thread  t1 = new Thread(m1);
                       t1.start();
                       MiClase m2 = new MiClase(“m2”);
                       Thread t2 = new Thread(m2);
                       t2.start();
       }
}

No hay comentarios:

Publicar un comentario