Knoppia

Wiki de Informática y otras historias

Herramientas de usuario

Herramientas del sitio


dad1:hilos

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
dad1:hilos [2023/09/21 08:47] – creado thejuanvisudad1:hilos [2023/11/16 07:53] (actual) – [Heredando Clase Thread] thejuanvisu
Línea 1: Línea 1:
 ====== DAD-1: Hilos ====== ====== DAD-1: Hilos ======
-Queremos crear un programa de la siguiente forma+===== Definición ===== 
-{{ :dad1:hilos.png |}}+Un Hilo es la secuencia única de control de flujo dentro del programa. Suele ser la unidad de código más pequeña que se puede ejecutar. 
 + 
 +Un hilo se puede implementar heredando la clase Thread o implementando la interfaz run(). 
 + 
 +==== Heredando Clase Thread ==== 
 + 
 +Por ejemplo, este hilo que vamos a implementar lo que hará será que cada vez que sea llamando repetir múltiples veces algo con cierto retraso entre ejecución. 
 +<code> 
 + 
 +public class SimpleThread extends Thread{ 
 +   
 +  //Atributos: 
 +  protected long retraso; 
 +  protected int veces; 
 +   
 +   
 +  //constructor del hilo, indicamos cuantas veces se repite y cada cuanto 
 +  public SimpleThread (long retraso, int veces){ 
 + 
 +   
 +    System.out.println("Constructor del Hilo Simple"); 
 +    this.retraso = retraso; 
 +    this.veces = veces;  
 +  } 
 +   
 +  //Definimos que hará el hilo durante su ejecución: 
 +  public void run(){ 
 +    try{ 
 +      for(int i = veces; veces >= 0; veces--){ 
 +        System.out.println("Cooldown de: " + retraso); 
 +        sleep(retraso); 
 +      } 
 +       
 +      System.out.println("Fin de la ejecucion del hilo"
 +       
 +    }catch(Exception e){ 
 +      System.out.println("Error en el Hilo: " + e); 
 +    } 
 +   
 +  } 
 +   
 +   
 +   
 +
 + 
 +</code> 
 + 
 +OJO: Para ejecutar el hilo usamos .start(), no .run(). 
 + 
 +===== En la práctica ===== 
 + 
 +Un hilo es una unidad única de control, para implementar un hilo necesitamos un objeto de la clase thread. 
 + 
 +El Programa que queremos crear deberá poder arrancar y parar hilos, de forma que podamos seleccionar el hilo a arrancar con un JComboBox y muestre en un log como van los hilos dentro de un JTextArea 
 + 
 +{{:dad1:hilos.png |}} 
 + 
 + 
 +===== Declaración de Hilos ===== 
 +{{:dad1:imagen_2023-09-21_110628890.png |}} 
 + 
 + 
 +===== Ejemplo de Funcionalidad Botón Lanzar Hilo ===== 
 +{{:dad1:imagen_2023-09-21_105550913.png |}} 
 +{{:dad1:imagen_2023-09-21_110138751.png |}} 
 + 
 + 
 +===== Ejemplo de Funcionalidad Botón Parar Hilo ===== 
 +{{:dad1:imagen_2023-09-21_110334262.png |}} 
 +{{:dad1:imagen_2023-09-21_110415326.png |}} 
 + 
 +===== Ejemplo de Funcionalidad ComboBox ===== 
 +{{:dad1:imagen_2023-09-21_114557992.png |}} 
 +NombreHilos sería: 
 + 
 +{{:dad1:imagen_2023-09-21_114719360.png |}} 
dad1/hilos.1695286044.txt.gz · Última modificación: 2023/09/21 08:47 por thejuanvisu