Interface runnable
La interface Runnable proporciona un método alternativo a la utilización de la clase Thread, para los casos en los que no es posible hacer que nuestra clase extienda la claseThread. Esto ocurre cuando nuestra clase, que deseamos correr en un thread independiente deba extender alguna otra clase.
Dado que no existe herencia múltiple, nuestra clase no puede extender a lavez la clase Thread y otra más. En este caso nuestra clase debe implantar la interface Runnable, variando ligeramente la forma en que se crean e inician los nuevos threads.
public classThreadEjemplo implements Runnable {
public void run() {
for (int i = 0; i < 5 ; i++)
System.out.println(i + " " +Thread.currentThread().getName());
System.out.println("Termina thread " +Thread.currentThread().getName());
}
public static void main (String [] args) {
new Thread ( new ThreadEjemplo() , "Pepe").start();
new Thread ( new ThreadEjemplo() ,"Juan").start();
System.out.println("Termina thread main");
}
}
Se implanta la interface Runnable en lugar de extender la clase Thread.
En el main observa la forma en que se crea el thread.Esa expresión es equivalente a:
ThreadEjemplo ejemplo = new ThreadEjemplo();
Thread thread = new Thread (ejemplo , "Pepe");
thread.start();
Primero se crea la instancia de nuestra clase.
Después se crea una instancia de la clase Thread, pasando como parámetros la referencia de nuestro objeto y el nombre del nuevo thread.
Por último se llama al método start de la clase thread.Este método iniciará el nuevo thread y llamará al método run() de nuestra clase.
Por útlimo, obsérvese la llamada al método getName() desde run().
getName() es un método de la clase Thread, porlo que la clase debe obtener una referencia al thread propio. Es lo que hace el método estático currentThread() de la clase Thread.
public class ThreadBasico implements Runnable {
private...
Regístrate para leer el documento completo.