====== DAD-1: Hilos ====== ===== Definición ===== 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. 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); } } } 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 |}}