Código de la clase “Temporizador”:
Enviado por number08 • 1 de Noviembre de 2022 • Tarea • 1.119 Palabras (5 Páginas) • 129 Visitas
UNIVERSIDAD NACIONAL TECNOLÓGICA DE LIMA SUR
FACULTAD DE INGENIERÍA Y GESTIÓN
CARRERA PROFESIONAL DE INGENIERÍA DE SISTEMAS
[pic 1]
SEMANA 09: ACTIVIDAD SÍNCRONA
(HILOS Y CONCURRENCIA).
Actividad presentada para la asignatura de
Lenguaje de Programación I, dirigida por
Mg. Maruja Emélita Blas Rebaza.
Estudiante:
Timaná Espinoza Marcia Kori
20B3010238
Villa el Salvador
2022
Ejercicio – Temporizador
Estructura:
[pic 2]
Código de la clase “Temporizador”:
package Temporizador; //paquete import java.util.*; /*importar librería(s) de java.util Se utilizará para importar la clase ArrayList del paquete java.util Así como también se utilizará la clase iterator*/ //clase Temporizador con herencia simple de la clase principal Thread public class Temporizador extends Thread{ private int espera; //atributo privado entero (int espera)
private List despertables = new ArrayList(); //hacer una colección mediante la declaración de un ArrayList de "Empleado"
//constructor Temporizador public Temporizador (int espera){ this.espera = espera; //this es un puntero o una referencia, indica el parámetro de espera } //métodos de add (agregar) y remove (eliminar) para Despertable public void addDespertable (Despertable d){ despertables.add(d); } public void removeDespertable (Despertable d){ despertables.remove(d); } @Override //sobreescritura de métodos //método run public void run(){ //ciclo while para interrumpir un hilo durante el sueño // dormirá el hilo principal durante la espera (en segundos) cada vez que se ejecuta el ciclo while while(!interrupted()){ //exception (try - catch) para manejar errores en la ejecución try{ Thread.sleep(espera); //el método sleep lanza la excepción InterruptedException } catch (InterruptedException e){ break; } //iterar una lista Iterator it = despertables.iterator(); //obtener el iterador //ciclo while while (it.hasNext()){ //devuelve verdadero hasta que it llega al final de la lista Despertable d = (Despertable) it.next(); //llamar it.next()dentro del bucle para avanzar en el iterador d.despierta(); //variable con acceso al método despierta() } } } } |
Código de la interfaz “Despertable”:
package Temporizador; //paquete //interfaz Despertable public interface Despertable { //método despierta() void despierta(); //void es un metodo que no devuelve ningun resultado } |
Código de la clase “Perezoso”:
package Temporizador; //paquete //clase Perezoso con herencia simple a la interfaz Despertable public class Perezoso implements Despertable{ private String nombre; //atributo privado String nombre
//constructor Perezoso public Perezoso (String nombre){ this.nombre = nombre; //this es un puntero o una referencia, indica el parámetro de nombre }
//método de acceso "despierta()" public void despierta(){ System.out.println(nombre + ": he sido despertado"); //imprimir el contenido dentro del paréntesis en la ejecución } } |
...