jueves, 10 de abril de 2014

Creación de threads derivando de la clase Thread - II

}
// definición del método run()
public void run() {
for(int i=0;i<10;i++)
System.out.println("Este es el thread: " + nameThread);
}
}
El siguiente código crea un nuevo thread y lo ejecuta por este segundo procedimiento:
SimpleRunnable p = new SimpleRunnable("Hilo de prueba");
// se crea un objeto de la clase Thread pasándolo el objeto Runnable como argumento
Thread miThread = new Thread(p);
// se arranca el objeto de la clase Thread
miThread.start();
Este segundo método cobra especial interés con las applets. ya que cualquier applet debe
heredar de la clase java.applet.Applet. y por lo tanto ya no puede heredar de Thread.
Véase el
siguiente ejemplo:
class ThreadRunnable extends Applet implements Runnable {
private Thread runner=null;
// se redefine el método start() de Applet
public void start () {
if (runner == nuil) {
runner = new Thread(this);
runner.start(); // se llama al método start() de Thread
}
}
// se redefine el método stop() de Applet
public void stop(){
runner = nuil; // se libera el objeto runner
}

}
En este ejemplo, el argumento this del constructor de Thread hace referencia al objeto Runnable cuyo método run() debería ser llamado cuando el hilo ejecutado es un objeto de ThreadRunnable. 
La elección de una u otra fonna -derivar de Thread o implementar Runnable- depende del tipo de clase que se vaya a crear. Así. si la clase a utilizar ya hereda de otra clase (por ejemplo mi applet. que siempre hereda de Applet). no quedará más remedio que implementar Runnable. aunque normalmente es más sencillo heredar de Thread.

No hay comentarios:

Publicar un comentario