}
// definición del método run()
public void 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:
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 () {
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(){
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