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