You are here
Creación a través de la interfaz Runnable Sin categoría 

Creación a través de la interfaz Runnable

Creación a través de la interfaz Runnable

 

 

El otro modo de crear hilos es mediante la implementación de la interfaz Runnable. La razón para utilizar otro método para la creación de hilos es que nos puede interesar heredar de la clase Applet y a la vez emplear los servicios de threads.

 

En  Java  no  está  permitida  la  herencia  múltiple,  al  menos  de  clases,  la  forma  de solucionar este problema es utilizando una interface (lo que sería una clase abstracta pura en

 

C++) que permita que las clases que implementa la interface puedan ser utilizada por la clase

 

Thread como base para crear un hilo, la interfaz utilizada se denomina Runnable.

 

 

Ya hemos visto la solución concurrente que dimos al problema inicial de presentar en pantalla dos mensajes sin utilizar applets, utilizamos la clase Hilo derivada de Thread y mensaje.java como programa principal que hacía uso de dicha clase.

 

Para poder hacer uso de la concurrencia en un applet es necesario incluir la interfaz Runnable, tal como hicimos en la solución concurrente con appletes, donde utilizamos la clase HiloApplet y el applet AppletConcurrent.

 

Podemos utilizar dos formas de crear Hilos utilizando Applets:

 

 

Una  consiste  en  crear  clases  extendidas  de  Thread,  que  contendrá  el  código  de ejecución del hilo, donde pasamos al constructor una referencia al applet que crea los hilos mediante this, esto es lo que hemos hecho en AppletConcurrent.java

 

hilo1 = new HiloApplet(this,pausa1);

 

 

hilo2 = new HiloApplet(this,pausa2);

 

 

Otra forma consiste en colocar el código de ejecución del hilo en el método run() del applet y crear los hilos como una instancia de la clase Thread. Esto es lo que hemos hecho en el applet appletConcurrent2.java

 

 

 

 

Ejemplo:

 

 

public class CreateThreadRunnableExample implements Runnable{

 

 

public void run(){

 

 

for(int i=0; i < 5; i++){ System.out.println(“Hijo Hilo : ” + i);

 

try{

 

 

Thread.sleep(50);

 

 

}

 

 

catch(InterruptedException ie){

 

 

System.out.println(“Hijo del hilo interrumpido! ” + ie);

 

 

}

 

 

}

 

 

System.out.println(“Hijo del hilo finalizada!”);

 

 

}

 

 

public static void main(String[] args) {

 

 

t.start();

 

 

for(int i=0; i < 5; i++){

 

 

System.out.println(“Main thread : ” + i);

 

 

try{

 

 

Thread.sleep(100);

 

 

}

 

 

catch(InterruptedException ie){

 

 

System.out.println(“Child thread interrupted! ” + ie);

 

 

}

 

 

}

 

System.out.println(“Main thread finished!”);

 

 

}

 

 

}

 

 


Si quieres seguir aprendiendo con nosotros, puedes ingresar a nuestros

Cursos y Diplomados de Tecnología Web visita www.uneweb.edu.ve  para más información

Related posts